chmod修改第1列内容, chown修改第3、4列内容, chgrp修改第4列内容:
![chown](https://img-blog.csdnimg.cn/923ed581d6e044d29f918dc9cf2d8f9d.png#pic_center)
1. 文件属性
权限的计算是除去第一位字母开始,权限都是三个符号为一组,其中-表示没有这个权限。
ls -al
得到如下列表:
drwxr-xr-x 4 oracle dba 4096 May 20 11:47 oralog1
drwxr-x--- 18 root root 4096 May 20 13:51 root
解释:
d :第一位表示文件类型,d是目录文件,l是链接文件,-是普通文件,p是管道
rwx :第2-4位表示这个文件的属主拥有的权限。r是读、w是写、x是执行
r-x :第5-7位表示和这个文件属主所在同一个组的用户所具有的权限
r-x :第8-10位表示其他用户所具有的权限
比如:
drwxr-xr-x 4 oracle dba 4096 May 20 11:47 oralog1
d表示oralog1是个目录
oracle是这个目录的所有者,oracle拥有读、写、执行的权限;
dba是所属用户组,和oracle所在同一个dba组里的用户拥有只读和执行权限;
剩下其他用户拥有只读和执行权限。
2. chown
用来更改某个目录或文件的用户名和所属用户组。
chown 用户名:组名 文件路径(可以是绝对路径也可以是相对路径)
例1:chown root:root /tmp/tmp1
就是把tmp下的tmp1的用户名和用户组改成root和root(只修改了tmp1的属组)。
例2:chown -R root:root /tmp/tmp1
就是把tmp下的tmp1下的所有文件的属组都改成root和root。
3. chmod
用于修改某个目录或文件的访问权限。
语法:
chmod [-cfvR] [–help] [–version] [who] [+ | - | =] [mode] 文件名
例1:chmod -R 777 /home/wl
表示给/home/wl目录赋予满权限,-R即递归(作用到该目录下的所有文件)
例2:chmod -x aaa/
表示取消目录aaa的可执行权限:
例3:给文件a.txt设置写权限(w),设置对象是所有人(a):
chmod a+w a.txt
例4:给文件b.txt设置可执行权限(x),设置对象是文件拥有者(u):
chmod u+x b.txt
例5:给文件b.txt设置写权限(w),设置对象是和文件拥有者同组的所有用户(g):
chmod g+w b.txt
4. chgrp
改变文件所属用户组。
命令格式为:chgrp 用户名 文件或目录。
如:
chgrp wl test
表示将test文件的所属用户组改为wl
chgrp -R zhangsan testDir
表示将testDir目录的所属用户组改为zhangsan
其他参数有:
-c或--changes 效果类似"-v"参数,但仅回报更改的部分。
-f或--quiet或--silent 不显示错误信息。
-h或--no-dereference 只对符号连接的文件作修改,而不更动其他任何相关文件。
-R或--recursive 递归处理,将指定目录下的所有文件及子目录一并处理。
-v或--verbose 显示指令执行过程。
--help 在线帮助。
--reference=<参考文件或目录> 把指定文件或目录的所属群组全部设成和参考文件或目录的所属群组相同。
--version 显示版本信息。
5. chmod|chown|chgrp和用法和区别
-
chgrp(改变文件所属用户组)
chgrp 用户组 文件名 ###就是这个格了。如果整个目录下的都改,则加-R参数用于递归。
如:
chgrp -R user smb.conf
-
chown(改变文件拥有者)
格式:
A:chown 用户名 文件/目录 B:chown 用户名:用户组:文件/目录
如果整个目录下的都改,则加-R参数用于递归。
例:chown -R root /etc/config.cfg chown -R root:root /home
-
chmod(更改文件属性)
文件属性的设置方法有两种,分别是数字和符号。
mode : 权限设定字串,格式如下 : [ugoa…][[±=][rwxX]…][,…],其中u 表示该档案的拥有者,g
表示与该档案的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是。+ 表示增加权限、- 表示取消权限、= 表示唯一设定权限。
r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该档案是个子目录或者该档案已经被设定过为可执行。
-s :在文件执行时把进程的属主或组ID置为该文件的文件属主。
-c : 若该档案权限确实已经更改,才显示其更改动作
-f : 若该档案权限无法被更改也不要显示错误讯息
-v : 显示权限变更的详细资料
-R : 对目前目录下的所有档案与子目录进行相同的权限变更(即以递回的方式逐个变更)
–help : 显示辅助说明
–version : 显示版本
例 :
将档案 file1.txt 设为所有人皆可读取 :chmod ugo+r file1.txt
将档案 file1.txt 设为所有人皆可读取 : chmod a+r file1.txt
将档案 file1.txt 与 file2.txt 设为该档案拥有者,与其所属同一个群体者可写入,但其他以外的人则不可写入 : chmod ug+w,o-w file1.txt file2.txt
将 ex1.py 设定为只有该档案拥有者可以执行 : chmod u+x ex1.py
将目前目录下的所有档案与子目录皆设为任何人可读取 : chmod -R a+r *
当其他用户执行oracle的sqlplus这个程序时,他的身份因这个程序暂时变成oracle: chmod u+s sqlplus
此外,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=5。
例:
chmod a=rwx file
和 chmod 777 file
效果相同
chmod ug=rwx,o=x file
和 chmod 771 file
效果相同
若用chmod 4755 filename
可使此程式具有root的权限
如果是管理员也就是常说的ROOT用户的话,基本上有可以查看所有文件的权力.
加星
点关注
谢谢
参考文献:
https://www.cnblogs.com/huxinping8800/p/7205937.html
https://blog.csdn.net/HYZX_9987/article/details/105216631