首页 > 代码库 > 用户,组,权限
用户,组,权限
useradd
-u, -g,-G(附加组)
-c,-d, -s, -r(创建系统用户)
-M (不创建家目录)
su - user5 完全切换
su user5 不完全切换
exit 退出切换
usermod
-u, -g, -G, -a, -c, -l(修改用户名)
-s, -L(锁定用户密码)
-U(解锁用户密码)
userdel -r(同时删除家目录)
例:建立a,b,c三个用户
要求,
1,a只属于b,c组,并且默认创建的文件的属组为c
2, b属于a,b组,并且默认创建的文件的属组为b
3,c属于a,b,c组,并且默认创建的文件的属组为a
方法一:
useradd a
useradd b
useradd c
usermod -g c -G b a
usermod -G a b
usermod -g a -G b,c c
方法二:
groupadd a
useradd -G a b
useradd -G a,b c
useradd -g c -G b a
usermod -g a -G b,c c
密码
passwd -d(删除用户密码),
-e(设置用户过期期限),–stdin
chage修改密码过期时间
组
gpasswd -a(向组中添加用户)
-d(向组中移除用户)
groupmod -g, -n(修改组名)
groupadd -g, -r(创建系统用户)
groupdel (删除组)
例:
[root@liu ~]# groupadd group3
[root@liu ~]# gpasswd group3 --另一个终端使用root用户新建一个组,给一个组密码
Changing the password for group group3
New Password:
Re-enter new password:
[user5@liu ~]$ groups
group1 user5 group2
[user5@liu ~]$ newgrp group3 --你登录一个你没有加入的组,那么就需要组密码了
Password:
[user5@liu ~]$ groups
group3 user5 group1 group2 --登录成功,现在user5有效组为group3
[user5@liu ~]$ touch 3
[user5@liu ~]$ ll --这次创建的文件,发现属组变成了group3
total 0
-rw-rw-r--. 1 user5 user5 0 Jul 16 16:08 1
-rw-r--r--. 1 user5 group1 0 Jul 16 16:10 2
-rw-r--r--. 1 user5 group3 0 Jul 16 16:13 3
权限
chmod
id -u , -g, -G
修改文件或目录的用户与组
chown
例: chown root:exte /date.txt
su切换环境变量,和不切换环境变量
权限管理
chmod
权限用九位来表示
前三位代表用户(u表示),中间三位代表组(g表示),后三位代表others(o表示)
权限有三种 r (read) 读 w (write) 写 x (execute) 执行
r 读 权限
针对目录,有r权限,就代表能对此目录有列表的功能 (就是ls列出来的功能)
针对文件,有r权限,就代表能对此文件有阅读的功能 (就是指cat一类的命令)
w 写 权限
针对目录,有w权限,就代表在此目录下创建(删除)文件或者子目录 (touch,mkdir等)
针对文件,有w权限,就代表能在此文件写入内容或者修改 (> ,>>, vi 再写等)
x 执行 权限
针对目录,有x权限,就代表能进入此目录 (cd)
针对文件,有x权限,就代表能执行它 (命令,可执行文件等)
a表示all a=u+g+o
特殊权限位(s,t)
s位叫特权位,英文的叫法有setuid,setgid,suid,sgid等
特权位s
一个可执行文件拥有s位时,当其它用户来执行这个可执行文件的话,使用的权限是此可执行文件属主或者属组的权限
只针对前三位,中间三位
对目录可以加,但是无效,因为目录不是命令,根本不能执行它
粘贴位t --只针对目录有效
特别用在/tmp目录
有t位的目录,任何用户在有权限的情况下是可以创建文件和目录,就算是有权限删除别人的文件或目录也不能删除
自己只能删除自己创建的目录,用于一些共享上传的文件服务器场合
s位和t位注意的地方:
用数字表示
前三位上加s 4
中间三位加s 2
后三位加t 1
s位和t位大小写的区别
小写的话就表示 有x执行权限
大写的话就表示 没有x执行权限
注意: --普通用户修改密码使用passwd能改自己的密码,但是密码是存放在/etc/shadow里,也就是说普通用户对/etc/shadow没有写的权限,但passwd可执行文件的前三位有s位,所以普通在调用passswd时是用的root的权限
文件属性 (file attributes)
lsattr
chattr
介绍几个常见重要的属性:
属性1: A
# lsattr 1.txt
-------------e- 1.txt
# chattr +A 1.txt
--这个属性让文件的access time访问后也不会变化,节省了IO(IO优化);默认情况下rhel5,访问一次atime就会跟着变一次,rhel6下只有当atime等于或早于mtime和ctime之一时,才会访问跟着变,否则不会变。
umask:权限遮罩码
属性2: a
一个文件加了a属性,重定向覆盖以前的内容不允许,但追加内容是可以的(可用于比如日志文件的场景)
# lsattr 1.txt
-----a-------e- 1.txt
# echo 456 > 1.txt
bash: 1.txt: Operation not permitted
# echo 456 >> 1.txt
属性3: i
# chattr -a 1.txt
# chattr +i 1.txt --加了i属性,此文件不可被修改,不能重命名,不能删除,不能改变内容
总结:文件的权限(mode,permission)为r,w,x,s,t;文件的属性(attributes)为A,a,i等;
查看当前的umask的值
umask UMASK值:设置umask的值,且仅对当前shell进程有效
install:复制文件并设置文件属性
install anaconda-ks.cfg -m 633 anaconda.new :复制anaconda文件为anaconda.new,并设置其权限
-o:指定属主
-g:指定属组
-d:创建目录
小提示: install -d data:创建data目录,类似与mkdir
用户,组,权限