一、Linux的安全模型
在Linux中用户登陆时必须提供用户名和密码(用户是由root用户创建的,最初的密码也是root用户设定的)。系统使用用户和群组来控制使用者访问文件和其他资源的权限。每一个文件都一定属于一个用户(一般该用户就是文件的创造者)并与一个群组相关。每一个进程(处理程序)都会与一个用户和群组关联,可以通过在所有的文件和资源上设定权限来允许该文件的所有者或者某个群组的成员访问他们。主要由系统管理员维护系统的安全。
二、基本规则
在Linux中,一般情况下每一个用户都有唯一的用户名和UID,root(系统管理员)的UId为0,CentOS7以前的版本中,系统用户的UID为1-499,这些用户是维持运行所需服务的对应进程,Linux中任何进程都有对应的用户,从CentOS7开始,系统用户的UID范围增加到1-999,其他UID为一般用户使用。
用户组的GID分配方式与UID相同。创建用户时默认创建一个与用户名相同的主组,每个用户必须有且仅有一个主组,但是可以添加到多个辅助组中。
Linux用户和组的主要配置文件:
/etc/passwd:用户属性信息,中间用冒号隔开,格式:
(用户名:密码:UID:GID:描述:家目录:shell类型)
/etc/group:用户组属性信息,格式:
(组名:密码:GID:用户列表)
/etc/shadow:密码文件,格式:
用户名
加密后的密码,不设置密码的账户默认为!!,代表不能登录
最后一次修改密码的时间
密码更改的最短期限
密码更改的最长期限
从系统开始警告用户到用户密码正式失效的天数
密码没有登陆但是账号仍然有效的最大天数
失效时间,当设置了这个选项,密码失效后不能再登陆
/etc/gshadow:组密码及其相关属性
三、用户、组管理命令
用户创建:用户账号的管理只要涉及到用户账号的添加、删除和修改。添加用户账号就是在系统中创建一个新账号,然后为新账号分配UID,指定用户组、家目录和登陆shell等资源。
useradd [options] LOGIN (默认值设定:/etc/default/useradd)
-u UID 创建用户时,指定用户的UID
-o 一般配合-u使用,指定UID时,不考虑UID是否唯一,
-g GID(或组名) 指定用户的所属基本组
-c "COMMENTS" 为用户添加注释信息
-d HOME_DIR 为用户创建制定的家目录
-s SHELL 指定用户默认shell程序类型(所有可用shell在文件/etc/shells中)
-G GROUP1[GROUP2…] 指定用户的附加组,组必须提前存在
-N 不创建私用组作为主组,让users组作为用户的基本组
-r 创建系统用户
创建用户家目录时,需要从/etc/skel/目录下复制用户文件。
批量创建用户:
newusers 后接一个passwd格式的文件,可以批量创建用户,
chpasswd 批量修改用户口令
(用户创建后家目录中没有基本文件,需要另行拷贝)
用户属性修改:修改用户账号就是根据实际情况更改用户的有关属性,如UID、家目录、用户组等基本属性。
usermod [options] login
-u UID 为用户设置新的UID
-g GID(或组名) 为用户指定新的基本组
-G GROUP1[,GROUP2…] 为用户指定新的指定新的附加组,原来的附加组会被覆盖,增加-a选项可以保留原来的附加组
-s SHELL 为用户指定新的默认shell
-c "COMMAENT" 为用户设置新的注释信息
-d HOMME_DIR 新的家目录不会自动创建,原家目录中的文件不会同时移动到新的家目录中;如果想要创建新的家目录并移动原家目录中的数据,使用-m选项
-l LOGIN_NAME 更换新的用户名
-L 锁定用户使其不能登录,在/etc/shadow密码栏中增加!
-U 解锁用户,去掉密码栏中的!
-e YYYY-MM-DD 为用户指定账号过期时间
-f INACTIVE 设置非活动期限
删除用户;userdel [OPTIONS]… login
-r 删除用户的家目录等文件
查看用户相关的ID信息
id [options]… [USER] 默认查看当前用户的id信息
-u 查看UID
-g 查看主组GID
-G 查看用户辅助组的GID
切换用户su [OPTIONS…] [-] [USERNAME[args…]]
su USERNAME:非登陆式切换,即不会读取目标用户的配置文件,也不会改变当前工作目录
su -[l] USERNAME:登陆式切换,读取用户的配置文件并切换至用户家目录
root用户切换其他用户式不需要密码,非root用户切换时需要密码
su [-] USERNAME -c 'COMMAND' 更换身份执行命令
设置密码
passwd [OPTIONS] USERNAME 可以修改指定用户的密码,仅root用户有此权限
-l 锁定指定用户
-u 解锁指定用户
-e 强制用户下次登陆时修改密码
-n MINDAYS 设置用户密码最短使用期限
-x MAXDAYS 设置用户最大使用期限
-w WARNDAYS 设置提前开始警告的天数
-iINTCTIVEDAYS 非活动期限
–stain 从标准输入接受用户的密码
如同用户可以使用passwd修改自己的密码
用户组管理
添加组
groupadd [OPTION]…GROUP_NAME
-g GID 指明GID号
-r 创建系统组
删除组
groupdel GROUP
更改组密码
gpasswd [OPTION] GROUP_NAME
-a USER 将USER添加至组中
-d USER 从指定组中一尺用户USER
-A USER1[,USER2…] 设置有管理权限的用户列表
newgrp可以临时切换基本组,如果用户不属于此组,需要组密码
更改和查看组成员
groupmems [OPTIONS] [ACTION]
options:
-g –group GROUP_NAME 更改为指定组(只有root)
actions:
-a –add USER_NAME 指定用户加入组
-d –delete USER_NAME 从组中删除指定用户
-p –purge 清空组中所有成员
-l –list 显示组成员列表
groups [OPTIOBS] [USER_NAME] 查看用户所属组列表
四、权限管理
文件属性:在Linux中ls -l可以查看文件或目录的属性。第一个字段中的第一个字符表示文件的种类,2-4个字符表示属主对文件或目录的操作权限,5-7表示属组用户的操作权限,最后三个字符表示其他用户的权限。后面的字段依次表示文件或目录的引用计数、属主、属组、大小、时间戳、文件名称。
修改文件的属主和属组
修改文件的属主:
chown chown [OPTION]… [OWNER][:[GROUP]] FILE…
用法:
OWNER
OWNER:GROUP
:GROUP 命令中的冒号可用.替换;
-R: 递归修改
chown [OPTION]… –reference=RFILE FILE… 参考其他文件
修改文件属组:chgrp
chgrp [OPTION]… GROUP_FILE…
chgrp [OPTION]… reference=RFILE FILE 参考其他目录修改
-R 递归修改
r.w.x对文件的作用
r:可以使用文件查看类工具获取其中内容
w:可以修改内容
x可以把此文件作为一个进程启动
r.w.x对目录的作用
r:可以使用ls查看目录中的文件列表
w:可以在目录中创建或删除文件
x:可以用ls -l查看目录中的文件列表,也可以用cd进入目录
用数字表示r.w.x
— 000 0
–x 001 1
-w- 010 2
-wx 011 3
r– 100 4
r-x 101 5
rw- 110 6
rwx 111 7
umask
创建新文件是根据用户的umask值来设置文件默认权限。当用户创建目录是,使用用户的umask值屏蔽最大权限的777,得出的结果就是目录的默认权限;当用户创建文件时,用umask值屏蔽权限值666,得出文件的默认权限。root用户默认的umask为022,所以当root用户创建的目录默认权限为755,文件的默认权限是644;而一般用户的默认umask是002,所以当一般用户创建目录是默认权限为775,文件默认权限是664。全局umask默认设置在目录:/etc/bashrc中,用户默认设置:~/.bashrc。
umask 查看当前用户的umask
umask # 临时设置用户umask值
umask -S 使用模式的方式显示umask
umask -p 输出umask,使之可被调用
Linux文件系统上的特殊权限
SUID:可执行文件搭配SUID权限,能够获得特权,任意存取该文件的所有者能够使用的全部系统资源。
权限设定:chmod u+s FILE
chmod u-s FILE
SGID:设置在文件上面,效果去SUID相同,只不过文件的所有者换成用户组,该文件就可以任意存取整个用户组是能使用的系统权限。
权限设定:chmod g+s FILE(或DIR)
chmod g-s FILE(或DIR)
Sticky:当一个目录设置了Sticky为权限时,只有文件的所有者和root用户才能删除该目录下的文件。
权限设定:chmod o+t DIR
chmod o-t DIR
访问控制列表:
ACL(访问控制列表)可以实现灵活的权限管理,除了文件的所有者,所属组和其他人,对更多的用户设置权限。
为多用户或者组的文件和目录赋予访问权限rwx
mount -o acl /directory
getfacl file |directory
setfacl -m u:wang:rwx file|directory
setfacl -Rm g:sales:rwX directory
setfacl -M file.acl file|directory
setfacl -m g:salesgroup:rw file| directory
setfacl -m d:u:wang:rx directory
setfacl -x u:wang file |directory
setfacl -X file.acl directory
mask
mask影响除所有者和other用户之外的所有人的最大权限,范围内的任何人的权限不能超过mask。
原创文章,作者:zhanghuanyu,如若转载,请注明出处:http://www.178linux.com/27415
评论列表(1条)
文章整体架构清晰,对命令的常见选项有了很好的总结。可以加上一些自己在练习过程中的操作,这样在以后的复习中会更直观明了哦。