用户组和权限管理
本节主要是:su、passwd、chage、chown、chgrp、chmod、umask等命令及文件的三种普通权限和三种特殊权限
切换用户或以其他用户身份执行命令:su
su [options…] [-] [user[args…]]
切换用户的方式:
su UserName:非登录式切换,及不会读取目标用户的配置文件
su -UserName:登录式切换,会读取目标用户的配置文件,完全切换
Note:root su 至其他用户无需密码,非root用户切换时需要密码。
换个身份执行命令:
su [-] UserName -c ‘COMMAND’
选项:-l –login:
su -l UserName相当于 su – UserName
给用户添加密码:passwd
管理员可以修改任何用户的密码,普通用户只能修改自己的密码
Passwd [options] UserName:修改指定用户的密码,仅root用户权限
-l:锁定指定用户
-u:解锁指定用户
-n:指定最短使用期限
-x:指定最长使用期限
-w:提前多少天开始警告
-i:非活动期限
-e:强制用户下次登录修改密码
–stdin:从标准输入接收用户密码
echo “PASSWORD” | passwd –stdin USERNAME
Note:Linux 系统之上有两个特殊的文件:
/dev/null:能够接收任何内容,并将其丢弃
/dev/zero:能够连续不断的输出0信息
修改用户密码属性:chage
chage [options] LOGIN
-d LAST_DAY:修改用户最近一次修改密码的时间
-E EXPIRE_DATE:从1970年到账号不能访问的时间
-I INACTIVE:修改用户的非活动期限
-m, –mindays MIN_DAYS:修改密码最短时间
-M, –maxdays MAX_DAYS:修改密码最长时间
-W, –warndays WARN_DAYS:提醒密码过期时间
-l:显示密码策略
创建组:groupadd
groupadd [option]… group_name
-g GID: 指明GID 号;[GID_MIN, GID_MAX]
-r: 创建系统组
删除用户:userdel
Userdel [options]LOGIN
-r:删除用户家目录
组属性修改:groupmod
groupmod [options] GROUP
-n:新名字
-g:新的GID
组删除:groupdel
groupdel GROUP
组密码:作用是为用户切换基本组
gpasswd [option] group
-a user:将user添加至指定组中
-d user:将user从指定组中删除
-A userlist:设置有组管理权限的用户列表
临时切换基本组:newgrp
修改文件的属主:chown和属组:chgrp
修改文件的属主:chown
chown [option]… [OWNER][:[GROUP]] FILE…
OWNER:只修改属主
OWNER:GROUP:修改属主和属组
:GROUP:只修改属组
命令中的冒号可用. 替换;
-R: 递归
修改文件的属组:chgrp
chgrp [option]… group file…
chgrp [option]… –reference=RFILE FILE…
-R 递归
文件权限
三类对象
u 属主
g 属组
o 其他
三种权限
r w x
对文件:
r:查看文件内容
w:修改文件内容
x:把文件提请内核启动为一个进程
对目录:
r:查看此目录文件
w:在此目录可创建、删除文件
x:查看目录下文件列表,也可进入该目录
X:只给目录x权限,不给文件x权限
修改文件权限:chmod
v chmod [option]… OCTAL-MODE FILE…
v chmod [option]… MODE[,mode]… FILE…
-R: 递归修改权限
修改权限:
直接设定权限 u= g= o= ug= a= u= g=
调整一些权限u+ u- g+ g- o+ o- a+ a-
v chmod [option]… –reference=RFILE FILE…
参考RFILE 文件的权限,将FILE 的修改为同RFILE
文件或目录创建时的遮罩码:umask
遮掩码是指在创建一个文件或目录时的默认权限为:
FILE: 666-umask
DIR: 777-umask
umask 命令
umask:查看umask值
umask #:设定 umask值
umask -S:模式方式显示
umask -p:输出可被调用
Linux 文件系统上的特殊权限: SUID, SGID, Sticky
三种常用权限:r, w, x user, group, other
安全上下文:
前提:进程有属主和属组;文件有属主和属组
(1) 任何一个可执行程序文件能不能启动为进程,取决发起者对程序文件是否拥有执行权限
(2) 启动为进程之后,其进程的属主为发起者;进程的属组为发起者所属的组
(3) 进程访问文件时的权限,取决于进程的发起者:
(a) 进程的发起者,同文件的属主,则应用文件属主权限
(b) 进程的发起者,属于文件的属组,则应用文件属组权限
(c) 应用文件“其他位”权限
SUID:Set UID
前提:此类文件为有可执行权限的命令
(1)任何一个可执行文件能不能启动为进程:取决于发起者对程序文件是否拥有执行权限
(2)启动为进程之后,其进程的属主为原程序文件的属主
权限设定:
chmod u+s FILE…
chmod u-s FILE…
注:SUID 只能作用在二进制的程序上
SGID:Set GID
可执行文件上:
任何一个可执行程序文件能不能启动为进程:取决发起者对程序文件是否拥有执行权限
启动为进程之后,其进程的属主为原程序文件的属组
权限设定:
chmod g+s FILE…
chmod g-s FILE…
目录中时:
一般,用户创建文件时,其属组为此用户所属的主组
v 一旦某目录被设定了SGID,则对此目录有写权限的用户在此目录中创建的文件所属的组为此目录的属组
权限设定:
chmod g+s DIR…
chmod g-s DIR…
注:sgid 作用在二进制的程序上:用户运行该程序时,自动继承该程序所属组的权限
chmod g+s file
sgid 作用在目录上时,该目录内新建的文件或目录的所属组自动继承该目录的所属组
chgrp groupname dir; chmod g+s dir
Sticky:粘滞位
对于一个多人可写的目录,设置了sticky,则每个用户仅能删除自己的文件
权限设定:
chmod o+t DIR…
chmod o-t DIR…
注:sticky 只能作用在目录上
设定文件特定属性
chattr +i 不能删除,改名,更改
chattr +a 只能增加
lsattr 显示特定属性
ACL
实现灵活的权限管理除了文件的所有者,所属组和其它人,可以对更多的用户设置权限。
其生效顺序:所有者,自定义用户,自定义组,其他人
ACL文件上的group 权限是mask 值, 而非传统的组权限。默认ACL权限给了x ,文件也不会继承x 权限。
mask值只影响除所有者和other 的之外的人和组的最大权限。它需要与用户的权限进行逻辑与运算后,才能变成有限的权限
附:
/etc/passwd
username:x:uid:gid:comment:home:shell
姓名:密码:uid:gid:注释:家目录:shell
/etc/shadow
username:password:password age:min:max:warn:inactive:usernameage:xxx
姓名:密码:上次改密时间:最小:最大:过期前警报:过期后:账号有效期:xxx
/etc/group
groupname:x:gid:groupmember
组名::gid:组员
/etc/gshadow
groupname:password:groupadmin:groupmember.
组名:加密口令:组管理员:组员
原创文章,作者:Dadi,如若转载,请注明出处:http://www.178linux.com/29456