Linux--改变文件或目录的权限

1. 权限的含义

r	对文件:是否和以查看文件中的内容   --->cat file
	对目录:是否可以查看目录中有什么子文件或者子目录   --->ls dir

w	对文件:是否可以改变文件里面记录的字符
	对目录:是否可以对目录中子目录或子文件的元数据进行更改
		--metadate 元数据-->描述数据属性的信息

x	对文件:是否可以通过文件名称调用文件内记录的程序
	对目录:是否可以进入目录

2. 改变文件的权限的方式
格式:

chmod 	u|g|o	+|-	r|w|x	file|dir

例子:

chmod 	u+x	      /mnt/file1  #给/mnt/file1的所有人加上x权限
chmod 	g-r	      /mnt/file2  #给/mnt/file2的所有组去掉r权限
chmod	ug-r	  /mnt/file3  #给/mnt/file3的所有人所有组去掉r权限
chmod	u-r,g+x	  /mnt/file4  #给/mnt/file4的所有人去掉r权限,所有组加上x权限
chmod	-r	      /mnt/file5  #给/mnt/file5的所有人,所有组,其他用户都去掉r权限
chmod 	o=rx	  /mnt/file6  #给/mnt/file6的其他用户赋予r-x权限

(1)建立文件,查看初始权限:
在这里插入图片描述
(2)更改权限
在这里插入图片描述

  • 用数字表示权限(用法与上面类似)
 r   w   x
 2   1   0 
r=4 w=2 x=1     #权值--类似于二进制
r-x|r--|--x
 5   4   1
7=rwx
6=rw-
5=r-x
4=r--
3=-wx
2=-w-
1=--x
0=---

注:数字相减时,不能单纯的做差,而要用对应的权限rwx相减!
例:4(r- -) – 3(-wx) = 4(r- -)

3. umask
(1)临时更改umask

umask	      #系统建立文件时默认保存的权力
umask	007	  #临时设定系统预留权限为007

(2)永久更改umask

  • 更改vim /etc/profile #系统配置文件
if [ $UID -gt 199 ] && [ "`/usr/bin/id -gn`" = "`/usr/bin/id -un`" ]; then
    umask 002		 #普通用户的umask
else
    umask 022		 #超级用户的umask
fi
  • 更改vim /etc/bashrc #shell配置文件
if [ $UID -gt 199 ] && [ "`/usr/bin/id -gn`" = "`/usr/bin/id -un`" ]; then
       umask 002
else
       umask 022
if
  • 更改之后不能立即生效,需要suorce:读取更改后文件,使其生效。
suorce	/etc/profile
source	/etc/bashrc	  #让更改立即生效

4. 特殊权限
(1) sticky #粘制位:用于共享目录,不同用户不能删除其他用户的文件

作用:
只针对目录生效,当一个目录上有sticky权限时
在这个目录中的文件只能被文件的所有者删除

设定方式:

	chmod o+t  dir
	chmod 1xxx dir
	注:现象为[rwx --> rwt]

(2) sgid #强制位

作用:
对文件: 只针对二进制可执行文件,当文件上有sgid时任何人执行此文件产生的进程都属于文件的组
对目录; 当目录上有sgid权限时任何人在此目录中建立的文件都属于目录的所有组

设定方式:

	chmod g+s file|dir
	chmod 2xxx file|dir

(3) suid #冒险位

只针对二进制可执行文件
当文件上有suid时,任何人执行这个文件中的程序产生的进程都属于文件的所有人

设定方式:

	chmod u+s file
	chmod 4xxx file

猜你喜欢

转载自blog.csdn.net/weixin_42195382/article/details/89006061