linux 权限管理命令

权限管理命令 chmod

注意:

权限限制仅限制普通用户,root用户不受权限 限制
目录的默认权限是 drwxr-xr-x 755
文件的默认权限是-rw-r–r-- 644
所有者权限与所属组权限冲突是 以所有者权限为准

chmod 改变文件或者目录权限

命令名称: chmod
英文原意:change the permissions mode of a file
命令所在目录 : /bin/chmod
执行权限 : 所有用户
功能描述:改变文件或者目录权限
语法: chmod [{ugoa}{±=}{rwx}[文件或者目录]] [mode=421][文件或者目录]
-R 递归修改
示例: $ chmod u=rwx,g=r /tmp/lintest/demo/

	  $ chmod 740 /tmp/lintest/demo/ (作用同上)
	  
	  $ chmod -R 777 /tmp/lintest/demo/  (demo目录下所有文件的权限都修改为777)

注: 改变一个文件的权限只有两个人可以   (1 文件的所有者 2 管理员)
	ugoa    u 所有者
			g 所属组
			o 其他人
			a 所有人
	+-=		+ 添加权限
			- 减少权限
			= 赋予权限(不管以前是什么权限)	
读	r ---- 4 (可以列出目录中的内容)
写	w ---- 2 (可以在目录中创建、删除文件)
执行	x ---- 1  (进入目录的权限)
	
	rwxrw-r--  数字权限就是764  (rwx 7;rw- 6;r-- 4)

特殊权限 (尽量不要手动添加)

  • SUID用于二进制可执行文件,执行命令时取得文件属主权限(让二进制程序的执行者临时拥有属主的权限) ·如/usr/bin/passwd
  • SGID用于目录,在该目录下创建新的文件和目录,权限自动更改为该目录的属组 (例如:做文件共享时)
  • SBIT用于目录,该目录下新建的文件和目录,仅root和自己可以删除 (某个目录中的文件只能被其所有者执行删除操作)·如/tmp
## 添加SUID权限
$ chmod 4755 /test/afile
$ chmod u+s /test/afile
## 添加SGID权限 
$ chmod 2765 directory
$ chmod g+s directory
## 添加SBIT权限 
$ chmod 1765 directory
$ chmod o+t directory

chown 改变文件或者目录的所有者(或者所素组)

命令名称: chown
英文原意:change file ownership
命令所在目录 : /bin/chown
执行权限 : 所有用户
功能描述:改变文件或者目录的所有者
语法: chown [用户][文件或者目录]
chown : [组名称][文件或者目录]

## 更改test文件的所有者为user1
$ chown user1 test
## 更改test文件的所属组为group1
$ chown :group1 test
## 同时修改目录test的所有者 user1 所属组为group1
$ chown user1:group1test

chgrp 改变文件或者目录的所属组

命令名称: chgrp
英文原意:change file group ownership
命令所在目录 : /bin/chgrp
执行权限 : 所有用户
功能描述:改变文件或者目录的所属组
语法: chgrp [用户组][文件或者目录]

umask 显示、设置文件的缺省权限

命令名称: umask
英文原意:the user file-creation mask
命令所在目录 : Shell 内置命令
执行权限 : 所有用户
功能描述:显示、设置文件的缺省权限
语法: umask[-S]
-S -rwx形式显示新文件缺省权限

	umask     结果:0022    实际表示的是 777-022 = 755  (实际权限为755)
	umask -S  结果:u=rwx,g=rx,o=rx
	
	设置权限: umask 022     (实际表示权限为 u=rwx,g=rx,o=rx)

用户切换

su

功能描述:Linux su命令用于变更为其他使用者的身份,(切换为root 需要密码 ;其他用户不需要)
使用权限:所有使用者
语法:su [-fmp] [-c command] [-s shell] [–help] [–version] [-] [USER [ARG]]

		-f 或 --fast 不必读启动档(如 csh.cshrc 等),仅用于 csh 或 tcsh
		-m -p 或 --preserve-environment 执行 su 时不改变环境变数
		-c command 或 --command=command 变更为帐号为 USER 的使用者并执行指令(command)后再变回原来使用者
		-s shell 或 --shell=shell 指定要执行的 shell (bash csh tcsh 等),预设值为 /etc/passwd 内的该使用者(USER) shell
		--help 显示说明文件
		--version 显示版本资讯
		- -l 或 --login 这个参数加了之后,就好像是重新 login 为该使用者一样,大部份环境变数(HOME SHELL USER等等)都是以该使用者(USER)为主,并且工作目录也会改变,如果没有指定 USER ,内定是 root
		USER 欲变更的使用者帐号
		ARG 传入新的 shell 参数
## 变更帐号为 root 并在执行 ls 指令后退出变回原使用者
$ su -c ls root
## 变更帐号为 keven 并改变工作目录至 keven 的家目录(home dir)
$ su - keven
##  变更帐号为 keven  不改变工作目录
$  su  keven

sudo

功能描述:以系统管理者的身份执行指令,也就是说,经由 sudo 所执行的指令就好像是 root 亲自执行
使用权限:在 /etc/sudoers 中有出现的使用者
语法: sudo [option]
-V 显示版本编号
-h 会显示版本编号及指令的使用方式说明
-l 显示出自己(执行 sudo 的使用者)的权限
-v 因为 sudo 在第一次执行时或是在 N 分钟内没有执行(N 预设为五)会问密码,这个参数是重新做一次确认,如果超过 N 分钟,也会问密码
-k 将会强迫使用者在下一次执行 sudo 时问密码(不论有没有超过 N 分钟)
-b 将要执行的指令放在背景执行
-p prompt 可以更改问密码的提示语,其中 %u 会代换为使用者的帐号名称, %h 会显示主机名称
-u username/#uid 不加此参数,代表要以 root 的身份执行指令,而加了此参数,可以以 username 的身份执行指令(#uid 为该 username 的使用者号码)
-s 执行环境变数中的 SHELL 所指定的 shell ,或是 /etc/passwd 里所指定的 shell
-H 将环境变数中的 HOME (家目录)指定为要变更身份的使用者家目录(如不加 -u 参数就是系统管理者 root )
command 要以系统管理者身份(或以 -u 更改为其他人)执行的指令

## 指定用户 keven  执行ls命令
$ sudo -u keven ls -l
## 以 root权限执行上一条命令
$ sudo !!

visudo 设置可执行sudo命令的用户/组的配置

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值