linux权限及归属管理
linux权限及其归属管理
- 第一位:-/d:确认是文件/目录
- 后面都是三位一体:属主,属组,其他人,权限``
- 访问权限:
(1)读权限r:允许查看文件内容
(2)写权限w:允许修改文件内容
(2)可执行x:允许运行程序(一般需要自己手动添加) ls -l 名字
:查看归属,前面属主,后面属组- 前面的字母及七进制表示:
755是目录默认权限
644是文件默认权限 (x权限一般只能手动)
文件和目录的满权限都是777
命令
- 设置或目录权限chmod
- 格式:
chomd -R ugoa +-=rwx 参数
chomd -R nnn 参数 - 选项:
-R:表示以递归的方式设置目录及其下目录及文件的权限
u:属主
g:属组
o:其他人
a:所有人
+:添加
-:删除
=:重置
chmod ugo+r file1.txt #将档案 file1.txt 设为所有人皆可读取
chmod ug+w,o-w file1.txt file2.txt #将档案 file1.txt 与 file2.txt 设为该档案拥有者,与其所属同一个群体者可写入,但其他以外的人则不可写入
#此外chmod也可以用数字来表示权限如 chmod 777 file
#语法为:chmod abc file
#其中a,b,c各为一个数字,分别表示User、Group、及Other的权限。
r=4,w=2,x=1
#若要rwx属性则4+2+1=7;
#若要rw-属性则4+2=6;
#若要r-x属性则4+1=7。
#范例:
chmod a=rwx file
chmod 777 file
chmod ug=rwx,o=x file
chmod 771 file
#效果相同
#若用chmod 4755 filename可使此程序具有root的权限.
#指令名称 : chown
#使用权限 : root
#使用方式 :
chmod [-cfhvR] [--help] [--version] user[] file...
- chown命令:chown将指定文件的拥有者改为指定的用户或组
- 格式
chown [选项]... [所有者][:[组]] 文件... - 命令参数
-c:显示更改部分信息
chown root:nginx test/ #将test/更改为属主root,属组nginx
chown root: test/ #将test/全部更改为root
chown :root #将test/属组更改为root
- umask命令:默认访问权限
对于文件和目录来说, 最大的权限其实都是777,但是执行权限对于文件来说,很可怕,而对目录来说执行权限是个基本权限。所以默认目录的最大权限是777,而文件的默认最大权限就是666。
对于root用户的umask=022这个来说,777权限二进制码就是(111)(111)(111),022权限二进制码为(000)(010)(010)。
- 所有权限二进制的1:代表有这个权限
- umask二进制1:代表要去掉这个权限,不管你原来有没有权限,你最终一定没有这个权限。
- umask二进制的0:代表我不关心对应位的权限,你原来有权限就有权限,没有就没有, 我不影响你。
一般为0000四位,需要改变的就是后面三位,表示rwx
umask 777
0777
- ACL权限设置:
一个针对文件/目录的访问控制列表。它在UGO权限管理的基础上为文件系统提供一个额外的、更灵活的权限管理机制。
- 针对用户和组设置权限
sudo tune2fs -l /dev/sda1 |grep "Default mount options:"
Default mount options: user_xattr acl
- 我们可以使用setfacl和getfacl命令来设置或观察文件/目录的acl权限。
setfacl:
setfacl [-bkRd] [{-m|-x} acl参数] 文件/目录名
-m :配置后面的 acl 参数给文件/目录使用,不可与 -x 合用;
-x :删除后续的 acl 参数,不可与 -m 合用;
-b :移除所有的 ACL 配置参数;
-k :移除默认的 ACL 参数;
-R :递归配置 acl;
-d :配置“默认 acl 参数”,只对目录有效,在该目录新建的数据会引用此默认值;
getfacl:查看目录或文件的信息
getfacl 文件/目录名
getfacl -x 删除权限
- 使用chmod暂时提高权限
chmod 777 文件 暂时提高权限,
其他用户也可以使用权限对非本用户内容进行操作 - 设置 chmod 1777 将文件保护,使文件只有本人和root可以删除,其他用户补课对其进行操作