touch /etc/nologin
echo system is maintanining >> /etc/nologin
可以控制非管理员root之外的所有普通用户不能登陆
7版本里面
cd /run/
touch /run/nologin
效果一样让普通用户不能登陆
ehho weihu > /run/nologin
useradd -ou0 root2
通过强制该成UID=0 生成管理员用户
cp -r /etc/skel/. /home/zczx
cp -r /etc/skl/.[^.]* /home/zczx
补齐家目录的文件
组
groupadd
-g 指明GID号
-r 创建系统组
centos 6:ID<500
centos 7:ID<1000
groupmod
-n 新名字
-g 新的GID
groupdel
删除辅助组,用户的主组删除不了。
gpasswd
-a user:将user添加至指定组
-d user: 从指定组中移除用户user
-A user1,user2,.....:设置有管理权限的用户列表
-M 指定成员作用跟-A差不多
-r:删除密码
-R:限制用户登入组,只有组成员才能可以用newgrp加入
newgrp 命令:临时切换基本组
如果用户不属于此组,则需要密码
' ' 直接当字符串输出
" " 变量能识别
` ` 反向引用,变量输出
具体输出要看使用
权限
r read 读
w write 写
x excute 执行
文件 -rw-r--r--
rw-r--r--
用户 组 other
chmod
change mode 修改权限
chmod who opt per file...
who:u,g,o,a
pot:+,-,=
per:
chmod u=rwx f1
chmod a=rwx f1 所有人a
文件的
有r权限的,能够读出文本,但是不能修改文本
有w权限的,可以将文件修改写空,有一定危险性,但没有权限删除文件
有x权限的,针对可执行的二进制程序或脚本
X:不会增加x,(前提本身无x权限)
目录的
r:可以查看目录内的文件列表,但不能访问文件,不能cd,也不能查看文件的元数据
w:可以创建或删除文件,要配合x权限。
x:可以进去目录,可以访问目录的文件,不显示目录下文件,但可以直接通过文件名字访问
X:不会增加x(前提本身无x权限)
目录中有 w和x,写和执行权限就可以操作目录的内容,可以删除目录下的文件
chmod -R a=rwx dir1/
chmod -R a=rwX dir1/
八进制数字
rw-r-----
110100000 二进制
420400000 四进制
640 八进制
640:rw-r-----
755:rwxr-xr-x
chomd 640
chomd
u 文件属主权限
g 同组用户权限
o 其它用户权限
a 所有用户(含以上3种)
+ 增加权限
- 取消权限
= 唯一设定权限
chmod --reference /etc/shadow dir1 参考文件dir1的权限设置
如何修复用户根目录被删去
rm -rf wangcai
cp -r /etc/skel wangcai
chown -R wangcai.wangcai wangcai /
chmod 700 wangcai
chown 修改文件的属主
更改每个文件的所有者或所属组
-R递归处理所有文件及子目录
chgrp 修改文件的属主
改变文件的组所有权
-R递归的改变目录和它的内容的组所有权
umask 可以用来保留在创建文件权限
-S :以字符的形式显示当前掩码
-p :带umask开头以数字的形式显示当前掩码
umask + default per =file 666/dir 777
umask +数值 umask 022
可以通过加入文件 .bashrc 永久生效
umaks 本质从目录或文件上屏蔽掉最大权限相应的位,从而得出默认权限。
umask 125
最大权限 110 110 110 666
二进制: 001 010 101 125
110 100 010 642
目录:dir 777-umask 目录直接减法计算
文件:file 666-umask 有奇数加1,偶数保留
umask 127
touch fff
666-127=54-1
=640
-rw-r-----
umask -S
直接显示出文件权限
umask -p 输出可被调用
非特权用户umask 是002
root 的 umask 是 022
umask :查看
umask #:设定
文件所有者 | 文件所属组用户 | 其他用户
r w x | r w x | r w x
4 2 1 | 4 2 1 | 4 2 1
特殊权限
suid s 4
sgid s 2
sticky t 1
权限数字在原来数字基础前面加一位数字
启动为进程之后,其进程的属主为发起者,进程的属组为发起者的属主
特殊权限要在x执行权限生效的时候才生效
ll
suid
passwd
ll /usr/bin/passwd
-rwsr-xr-x
suid 用数字4表示
普通用户执行属主的权限
在文件修改chmod u+s 要注意安全性问题,因为大部分文件属主都是root用户
只针对二进制进程生效
sgid
组权限
root 组权限不大,跟root用户有根本上区别
sgid 用数字2表示
chomd u-s,g-s /testdir
作用在二进制程序
作用在目录上,目录下的新建文件都属于该目录的同一个组,新建的目录与子目录同样属于目录的组。
sticky
粘滞位
chomd o+t /testdir
可以建立和删除自己的文件,但不能删除其他用户的文件(root)用户除外
作用在目录上
chattr
修改文件在Linux第二扩展文件系统上特有属性
-R 递归修改目录及其下内容的属性
chattr +A user.txt 锁定user.txt atime 读取的时间
chattr -A user.txt 消除atime时间锁定
lsattr user.txt 可以显示文件是否带A
lsattr 显示文件在Linux 第二扩展文件系统上特有属性
-R 递归列出目录及一下内容的属性
-v 显示文件版本
-a 列出目录中的所有文件,包括.开头的文件属性
chattr 避免你的文件误操作
+ i 不能删除,改名,更改
+ a 只能增加
lsattr 显示特定属性
ACL:
具有能再添加局限权限的能力,实现灵活的权限管理
Centos 7 默认创建xfs 和ext4 文件系统有ACL功能。
Centos 7 版本之前,默认手工创建的ext4文件系统无ACL功能。
手动添加:
tune2fs -o acl /dve/sdb1
mount -o acl /dve/sbd1 /mnt
ACL 生效顺序:所有者,自定义用户,自定义组,其他人。
setfacl 设定文件访问控制列表
-m :改变文件的访问控制列表
-M :从文件读取访问控制列表条目更改
-x : 根据文件中访问控制列表移除条目
-X :从文件读取访问控制列表条目并删除
-b : 删除所有扩展访问控制列表条目
-k : 移除默认访问控制列表
-n : 不重新计算有效权限掩码
-d : 应用到默认访问控制列表的操作
-R :递归操作子目录
-v : 显示版本并退出
setfacl -m u:zczx:rwx
用户
-m g:zczx:0
组
setfacl -x u:zczx f1
-x g:zczx fi
清除ACL权限
setfacl -b
完全清除ACL痕迹
getfacl f1
可以看到特殊权限
u:wang
u:wangcai
setfacl -X a.txt
删除a文件中名单用户的ACL权限
setfacl -m m::x f1 mask::--x
一但设置了ACL权限之后,修改g组的权限等于修改mask权限
setfacl -m m::rw f1
设置了mask权限
除了所有者的权限,其他用户和组的权限都被限制成为rw或者不够rw.
只能比小和相等。(user 和 other 不影响)
setfacl -m d:u:wangcai:rwX
getfacl 可以看到特殊权限
base ACL 不能删除
setfacl -k dir 删除默认ACL权限
setfacl -b file 清除所有ACL权限
getfacl f1 | getfacl --set-file=- f2
复制f1的ACL权限给f2
cp -a f1 /root/
cp -p f1
getfacl -R /tmp/dir1 > acl.txt
setfacl -R -b /tmp/dir1
setfacl -R --set-file=acl.txt /tmp/dir1
getfacl -R /tmp/dir1
mkdir test
groupadd g1
groupadd g2
groupadd g3
chgrp g1 test
chmod 2770 test
chgrp g1 test
setfacl -m g:g2:rwx test
setfacl -m g:g3:rwx test
setfacl -m d:g:g2:rwx test
setfacl -m d:g:g3:rwx test
setfacl -m d:g:g3:r test
getfacl test
gpasswd -a user g2