[Centos 7 노트 7] 사용자 및 파일 권한 관리
3425 단어 Centos 7 학습 노트
1.useradd命令用于创建新的用户,格式为:“useradd [选项] 用户名”
参数 作用
-d 指定用户的家目录(默认为/home/username)
-e 帐号有效截至日期,格式:YYYY-MM-DD.
-u 指定该用户的默认UID
-g 指定一个初始的用户基本组(必须已存在)
-G 指定一个或多个扩展用户组
-N 不创建与用户同名的基本用户组
-s 指定该用户的默认Shell
[root@linuxprobe ~]# useradd -d /home/linux -u 8888 -s /sbin/nologin linuxprobe
[root@linuxprobe ~]# id linuxprobe //show the info of user
uid=8888(linuxprobe) gid=8888(linuxprobe) groups=8888(linuxprobe)
2.groupadd命令用于创建群组,格式为:"groupadd [选项] 群组名"
3.usermod命令用于修改用户的属性,格式为“usermod [选项] 用户名”
参数 作用
-c 填写帐号的备注信息
-d -m -m与-d连用,可重新指定用户的家目录并自动把旧的数据转移过去。
-e 帐户到期时间,格式“YYYY-MM-DD”
-g 变更所属用户组
-G 变更扩展用户组
-L 锁定用户禁止其登陆系统
-U 解锁用户,允许其登陆系统
-s 变更默认终端
-u 修改用户的UID
4.passwd命令用于修改用户的密码,格式为:“passwd [选项] [用户名]”
参数 作用
-l 锁定用户禁止其登陆
-u 解除锁定,允许用户登陆。
--stdin 允许从标准输入修改用户密码,如(echo "NewPassWord" | passwd --stdin Username)
-d 使帐号无密码
-e 强制用户下次登陆时修改密码
-S 显示用户的密码状态
5.userdel命令用于删除用户,格式为:“userdel [选项] 用户名”
参数 作用
-f 强制删除用户,家目录与其相关文件
-r 同时删除用户,家目录与其相关文件
6.文件的特殊权限:
SUID:让执行者临时拥有属主的权限(仅对拥有执行权限的二进制程序有效)
SGID功能一:让执行者临时拥有属组的权限(对拥有执行权限的二进制程序设置)
SGID功能二:在该目录中创建的文件自动继承此目录的用户组(只可以对目录设置):
[root@linuxprobe ~]# cd /tmp
[root@linuxprobe tmp]# mkdir testdir
[root@linuxprobe tmp]# ls -ald testdir/
drwxr-xr-x. 2 root root 6 Feb 11 11:50 testdir/
[root@linuxprobe tmp]# chmod -Rf 777 testdir/
[root@linuxprobe tmp]# chmod -Rf g+s testdir/
[root@linuxprobe tmp]# ls -ald testdir/
drwxrwsrwx. 2 root root 6 Feb 11 11:50 testdir/
SBIT(Sticky Bit):只可管理自己的数据而不能删除他人文件(仅对目录有效)
效果是不让其他人删除自己的文件,换句话说就是文件只能被所有者执行删除操作
7.chmod命令用于修改文件或目录的权限,格式为:"chmod [参数] 权限 文件或目录名称"
8.chown命令用于修改文件或目录的所属主与所属组,格式为:“chown [参数] 所属主:所属组 文件或目录名称”
9.文件的隐藏属性
9.1 chattr命令用于设置文件的隐藏权限,格式为:“chattr [参数] 文件”
将某个隐藏功能添加到文件上面,则使用+参数,如果想要将某个隐藏功能移出文件,则使用-参数
参数 作用
i 将无法对文件进行修改,若对目录设置后则仅能修改子文件而不能新建或删除。
a 仅允许补充(追加)内容.无法覆盖/删除(Append Only)。
S 文件内容变更后立即同步到硬盘(sync)。
s 彻底从硬盘中删除,不可恢复(用0填充原文件所在硬盘区域)。
A 不再修改这个文件的最后访问时间(atime)。
b 不再修改文件或目录的存取时间。
D 检查压缩文件中的错误。
d 当使用dump命令备份时忽略本文件/目录。
c 默认将文件或目录进行压缩。
u 当删除此文件后依然保留其在硬盘中的数据,方便日后恢复。
t 让文件系统支持尾部合并(tail-merging)。
X 可以直接访问压缩文件的内容。
9.2 lsattr命令用于显示文件的隐藏权限,格式为:“lsattr [参数] 文件”
10.文件访问控制列表:如果对某个目录设置了访问控制策略,那么子文件则继承其访问策略,而若对文件设置了访问控制策略则不再继承上级目录的控制策略。
设置指定的特定用户或用户组对某个文件的操作权限
10.1 setfacl命令用于增加或者修改ACL规则,格式为:"setfacl [参数] 文件名称"
对于目录文件需要使用递归-R参数,对普通文件需要使用-m参数,而如果想要删除某个文件的访问控制策略的话可以使用-b参数
[root@linuxprobe ~]# setfacl -Rm u:leo:rwx /root // add rwx to user leo
[root@localhost tmp]# setfacl -Rm g:leo:r-x /tmp //设置用户组leo的权限
10.2 getfacl命令用于显示文件的ACL规则,格式为:"getfacl 文件名称"
11. su and sudo
su命令与用户名之间有一个减号(-),这意味着完全的切换到新的用户,即把环境变量信息也变更为新的用户,而不保留原始的用户信息,这个是推荐必加的参数,一定要记下哦~另外当超级用户切换到普通用户时是不需要密码验证的,而普通用户切换成超级用户身份就需要密码验证后才能成功了,这是一个必要的安全检查
[root@linuxprobe ~]# su - linuxprobe
Last login: Wed Jan 4 01:17:25 EST 2017 on pts/0
总结来说sudo的特色功能有:
1:限制用户执行指定的命令。
2:记录用户执行的每一条命令。
3:配置文件(/etc/sudoers)提供集中的管理用户、权限与主机等参数。
4:验证过密码后5分钟(默认值)内无须再让用户验证密码,更加的方便。
sudo服务用于给普通用户提供额外权利来完成原本超级用户才能完成的任务,格式为:“sudo [参数] 命令名称”。
参数 作用
-h 列出帮助信息。
-l 列出当前用户可执行的命令。
-u 用户名或UID值 以指定的用户身份执行命令。
-k 清空安全时间,下次执行sudo时需要再次密码验证。
-b 在后台执行指定的命令。
-p 更改询问密码的提示语。
只用超级用户才可以使用visudo命令编辑sudo程序的配置文件(/etc/sudoers)
root ALL=(ALL) ALL 说明如下:
谁可以使用超级用户身份 允许使用sudo命令的主机=(以谁的身份执行命令) 可执行命令的列表
如果需要让某个用户只能使用超级用户的身份执行指定的命令,切记一定要写上的是该命令的绝对路径,否则系统会识别不出来哦,因此我们可以先用whereis命令找出命令所对应的保存路径,然后将刚刚配置文件中第99行的用户权限参数修改成对应的路径即可:
leo ALL=(ALL) /bin/cat
添加NOPASSWD参数来使得用户执行sudo命令时不再需要密码验证啦:
leo ALL=NOPASSWD: /usr/sbin/poweroff