让普通用户无法登录:
centos 6
touch /etc/nologin
echo "wating" > /etc/nologin
普通用户登录时不能进入系统,有提示信息
centos7
touch /etc/nologin 或touch /run/nologin
chage -l alice 显示用户的密码信息
groupadd -g 3000 g1 //新建gid为3000的组g1
groupmod -n newg1 -g 3001 g1 //修改组名为newg1、gid为3001
groupmems -l -g newg1 //查看newg1组包含哪些成员
groupmems -g newg1 -a jerry //将jerry用户加入alice组
gpasswd -d tom newg1 //将tom用户从newg1组移除
gpasswd -a alice newg1 //将alice用户加入newg1组
对于目录的意义
r:可查看dir内文件列表,但不能访问文件,不能cd,也不能查看文件的元数据
x:可以进入dir,可以访问dir中文件
w:可以创建或删除dir中文件,配合x(无视文件的权限,因为文件是目录中的内容,一个名字)
chmod -R a=rwX dir1/ // 对目录,X等价x;对文件,原先有执行权限则为x,原先无执行权限则为-
chmod –reference sfile dfile 将dfile的权限设为同sfile的权限
umask+default file为666 dir为777 // 防止文件有执行权限
umask root的默认0222 普通用户的默认0002
/etc/profile 和 /etc/bashrc中定义了掩码
umask 026 对当前shell有效,写到~/.bashrc中永久生效
umask -p >> .bashrc //-p,输出被调用,写入到.bashrc
umask -S 模式方式显示 输出u=rw,g=rx,o=w
umask 从目录或文件上屏蔽掉最大权限相应的位,从而得出默认权限
dir:777-umask
file:666-umask 有奇数+1,偶数则原样
umask 125,666-125=541(5、1是奇数要+1)–>642
s权限即suid,对普通用户有意义,普通用户可以改自己密码
如果chmod u-s /usr/bin/passwd 则权限变为-rwxr-xr-x
普通用户无法再passwd改自己密码
还原回去,chmod 4755 /usr/bin/passwd //4是suid的权限,2是sgid,1是sticky
普通用户cat /etc/shadow是禁止的
chmod u+s /usr/bin/cat,则-rwsr-xr-x,普通用户可以读取/etc/shadow
[root@localhost ~]# ll -d /testdir
drwxrwxrwx. 14 root root 4096 Aug 3 13:35 /testdir
切到普通用户,可以创建、删除自己和其他人的文件(因为目录有写权限)
[root@localhost ~]# chmod o+t /testdir t是粘滞位
权限为drwxrwxrwt,切到普通用户,可以创建、删除自己文件,而不能删除其他人文件
suid s 作用在二进制程序
sgid s 作用在二进制程序
sticky t 作用在目录
sgid作用于目录上:将使该目录中新建文件或目录将自动继承该目录所属组
chattr +A file
lsattr file 看到标识——-A——–
chattr +i file 锁定文件
chattr +a file 只能追加修改不能删除
文件访问控制列表
ACL:Access Control List,实现灵活的权限管理,除了文件的所有者,所属组和其它人,可以对更多的用户设置权限
setfacl 命令
-m 修改acl规则
setfacl -m u:wang:0 f1
setfacl -m u:wangcai:rw f1
-x 移除acl规则
setfacl -x u:wangcai f1
-b 清空所有acl规则
setfacl -b f1
-M 读取acl规则文件
setfacl -M acl.txt f2
设置了facl,文件的权限为mask的权限
setfacl -m mask::rw f1 //一旦mask设置了,除了所有者和other,其他人只能小于等于mask权限
chmod g=x f1 改组的权限实际是改mask权限
setfacl -m d:u:wangcai:rwX dir // d,default 影响目录下将来的新文件
getfacl file1 | setfacl –set-file=- file2 复制file1的acl权限给file2
tar打包会丢失acl信息,手工备份
cd /dir
getfacl -R *
getfacl -R * > /root/acl.bak
setfacl -R -b *
setfacl -R –set-file=/root/acl.bak *
原创文章,作者:victorycommander,如若转载,请注明出处:http://www.178linux.com/28737