技术的提升仅是量的积累,思想的提升才是质的飞跃。————老男孩
技术重要,学习技术过程中,【积累的学习能力】,思维方法更重要。——老男孩
权限属性chattr
chattr 只有 root 用户可以使用,用来修改文件系统的权限属性,建立凌驾于 rwx 基础权限之上的授权。
选项: + 增加权限 -减少权限 =等于某个权限
参数
a:仅可追加内容,不可删除
i:不得修改,不能删除
chatter +i 文件 增加i属性
chatter -i 文件 减少i属性
lsattr 查看chattr设置的属性
练习:i属性
touch oldboy.txt
lsattr oldboy.txt
---------------- oldboy.txt
chattr +i oldboy.txt
lsattr oldboy.txt
----i----------- oldboy.txt
rm -f oldboy.txt
rm: 无法删除"oldboy.txt": 不允许的操作
企业就用途:保护关键文件,防止被非法删除
chattr +ai /etc/passwd /etc/group /etc/shadow /etc/gshadow /etc/sudoers
lsattr /etc/sudoers /etc/passwd /etc/shadow /etc/gshadow
----ia---------- /etc/sudoers
----ia---------- /etc/passwd
----ia---------- /etc/shadow
----ia---------- /etc/gshadow
chattr -ai /etc/passwd /etc/group /etc/shadow /etc/gshadow /etc/sudoers
lsattr /etc/sudoers /etc/passwd /etc/shadow /etc/gshadow
Linux系统权限 基础权限共9位
rwx r-x r-x
u g o
1)3位一组
2)前三位,用户位(owner),中三位为用户位(group),后三位为其他用户(others)
3)
r(read)读取权限4
w(write)写入权限2
x(execute)执行权限1
-(没有权限)没有权限0
注: 如果权限位不可读、不可写、不可执行,则全部使用-作为占位符表示。
文件和目录权限细节总结
1)针对文件
r 可以读取文件内容(block)
w 可以增加 修改 删除 文件内容(block里)的权限
有没有删除文件本身的权限?
和文件本身属性无关,与上一级目录的w权限有关
x 可以执行文件 条件:a.本身可执行 b.配合r c.root不受r控制
Linux系统中的权限对于文件和目录来说,是有一定区别的,下面先列举下普通文件对应的权限重要知识。
1)可读r:表示具有读取、浏览文件内容(即读取文件实体block)的权限。
2)可写w:表示具有新增、修改、删除文件内容的权限。
3)可执行x:表示具有执行文件的权限。
其中,对于可读r,这里有两点需要说明:
q如果没有可读r的配合,那么使用vim编辑文件时会提示无法编辑(但可强制编辑覆盖文件),可以使用echo等命令进行重定向或追加内容到文件;
q删除、移动或创建文件等的权限是受父目录(上一级目录)的权限控制的
对于可执行x,需要注意以下3点。
q首先文件的本身要能够执行(命令或脚本)。
q如果是普通用户,同时还需要具备可读r的权限才能执行文件。
q而root用户只要有可执行x的权限就能执行文件。
搭建环境测试
Linux系统9位基础权限测试环境下的用户角色需求规划
incahome 家组
oldboy 家庭男主人,用来代表用户(User)角色,是文件的所有者
oldgirl 女主人(和所有者oldboy属于相同组,oldboy的家人)用来代表用户组incahome的角色
其他人 test 其他(others)人,用来代表其他用户角色
实践:
groupadd incahome
useradd oldboy -g incahome
useradd oldgirl -g incahome
id oldboy
uid=5023(oldboy) gid=5023(incahome) 组=5023(incahome)
id oldgirl
uid=5024(oldgirl) gid=5023(incahome) 组=5023(incahome)
useradd test
开启四个窗口,依次调整为如下用户登录:root,oldboy,oldgirl,test
root窗口:
mkdir /oldboy -p
cd /oldboy/
echo "echo 'I am 35.'" >test.sh
cat test.sh
echo 'I am 35.'
ls -l test.sh
-rw-r--r--. 1 root root 16 5月 20 12:43 test.sh
设置新的用户和组
chown oldboy.incahome test.sh
ls -l
总用量 4
-rw-r--r--. 1 oldboy incahome 16 5月 20 12:43 test.sh
调整权限:
chmod 775 test.sh
ls -l
总用量 4
-rwxrwxr-x. 1 oldboy incahome 22 5月 20 12:52 test.sh
使用chmod设定权限
权限设置
1)数字权限
r 4
w 2
x 1
- 0
文件最高666 使用最多 644 X小心给
目录最高777 使用最多 755 W小心给
\#选项: -R 递归修改
chmod 600/777 文件
\#针对目录设定权限
chmod 777/600 dir/ 修改目录允许所有人访问
chmod -R 755/644 dir/ 修改目录及子目录权限
2)字符权限
chmod a=rwx file 给所有人添加读写执行权限
chmod a=-rwx file 取消所有的权限
chmod u=rwx,g=rw,o=- file 属主读写执行,属组读写,其他人无权限
chmod ug=rwx,o=r file 属主属组读写执行,其他人读权限