linux系统下的权限知识梳理,linux系统下的权限知识梳理

(0)umask是权限码,默认是022

使用命令“umask”就能查询出来

文件默认的权限是666,目录默认的权限是777

新建文件和目录的权限分别是各自默认权限减去umask权限码值

即:

新建文件权限,666-022=644

新建目录权限,777-022=755

《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《

(1)chmod,chown,chgrp

chmod表示数字权限(4,2,1),比如给a文件设置755权限,直接输入:

chmod 755 a

chown表示所属者权限,chgrp表示所属组权限,但是通常我们直接用chown授权这两个。

比如给a文件授权所属者是wangshibo,所属组是wutao,做法如下:

1)chown wangshibo a

chgrp wutao a

2)chown wangshibo.wutao a

《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《

(2)chattr隐藏权限,这个很重要!!!通常用于锁定文件。

一般用到两个参数:i和a

chattr +i 表示对于一个文件除了查看,什么都干不了(删除,增加,更名)

chattr +a 表示除了查看之外,还能增加内容,但是只能echo追加内容(echo >>),不能直接vim进行编辑!

chattr -i或chattr -a 表示删除这个参数权限

lasttr表述查看设置的chattr权限

上面的chattr是针对文件设定的权限,如果是对目录(比如test目录,如下)设定的话,是一样的!

即:

chattr +i test 那么只能cd切换到test目录下,对于test目录下的文件除了查看权限,其他的都不能操作

chattr +a test 那么只能cd切换到test目录下,对于test目录下的文件除了查看权限,也只能echo追加内容,其他的也都干不了

但是记住一点,删除权限的话,在chattr -ai -R 要加上一个-R递归参数,表示连同目录下的文件权限都删除了!!!

《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《

(3)facl权限,setfacl表示设置权限,getfacl表示查看权限

固定命令格式如下:

“setfacl -m u:用户名:字符权限 文件名 ” (这是针对文件来说)

"setfacl -R -m u:用户:权限 目录名" (这是针对目录来说)

-m表示设置权限

-b 表述删除权限

setfacl -b 文件名 删除文件的facl权限

setfacl -R -b 目录名 删除目录的facl权限

getfacl 文件名或者目录名 表述查看文件或目录的facl权限

《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《

(4)特殊权限: 【http://alan-hjkl.iteye.com/blog/1526858】

1)suid权限:让普通用户拥有可以执行“只有root权限才能执行”的特殊权限。这个一般针对命令文件而言,比如passwd,一般用不到 --------设置的时候,在文件当前数字权限前面加4

2)sgid权限:设置之后,可以让普通用户拥有和这个文件所属组同样的权限 --------设置的时候,在文件当前数字权限前面加2

3)t权限:特别注意,t权限只能针对目录而言,对文件来说无效!之后,只有root和文件所有者才能有权限,其他用户都没操作权限。(除非将文件的其他所有组部分设置7,比如设置777权限) --------设置的时候,在文件当前数字权限前面加1

针对sgid权限的例子:

[[email protected] src]#cd /usr/local/src

[[email protected] src]# touch aa

[[email protected] src]# ll

总用量 0

-rw-rw-r--. 1 wutao wutao 0 8月 28 05:21 aa 【注意,设置sgid权限,要保证文件的所属组有操作权限】

[[email protected] src]# chown wutao.wutao aa

[[email protected] src]# ll

总用量 0

-rw-r--r--. 1 wutao wutao 0 8月 28 05:15 aa

[[email protected] src]# su - wangshibo

[[email protected] ~]$ cd /usr/local/src/

[[email protected] src]$ ls

aa

[[email protected] src]$ echo 123 > aa 由于a文件是wutao帐号下的文件,wangshibo用户没有操作权限

-bash: aa: 权限不够

[[email protected] src]$

现在给a文件设置sgid权限,那么wangshibo用户只要在wutao组内,就能对a文件有操作权限

****************************************************************************************************************************************************************

小知识点:

将一个用户拉到一个组内的两种方法:

“gpasswd -a 用户名 组名”

“usermod -G 组名 用户名”

将一个用户从组内删除

“gpasswd -d 用户名 组名 ”

****************************************************************************************************************************************************************

[[email protected] src]# chmod 2664 aa 【设置sgid权限】

[[email protected] src]# ll

总用量 0

-rw-rwSr--. 1 wutao wutao 0 8月 28 05:21 aa

[[email protected] src]# gpasswd -a wangshibo wutao 【将wangshibo用户拉到wutao组内】

Adding user wangshibo to group wutao

[[email protected] src]# id wangshibo

uid=501(wangshibo) gid=501(wangshibo) 组=501(wangshibo),500(wutao)

[[email protected] src]# su - wangshibo

[[email protected] ~]$ cd /usr/local/src/

[[email protected] src]$ echo 123 > aa 这样,wangshibo用户就能草组aa文件了

[[email protected] src]$

针对t权限的例子:

注意:t权限只对目录设置有效!

/tmp目录是linux下的一个临时目录,一般会设置777权限,为了方面其他用户都能在这个目录下操作,其实就是一个共用目录,大家都可以用!

但有时有些目录在tmp下存放自己的比较重要的文件,不想让其他用户操作,安全起见,会给tmp目录设置t权限!

[[email protected] ~]# ll -d /tmp

drwxrwxrwx. 20 root root 4096 8月 28 05:32 /tmp 【tmp临时目录是777权限】

[[email protected] ~]# su - wutao

[[email protected] ~]$ cd /tmp/

[[email protected] tmp]$ vim sss

[[email protected] tmp]$ ll sss

-rw-rw-r--. 1 wutao wutao 7 8月 28 05:33 sss 【这个文件所有者是wutao】

[[email protected] tmp]$ logout

[[email protected] ~]# su - wangshibo

[[email protected] ~]$ ll /tmp/sss 【其他用户对tmp临时目录下非自己所创建的文件也开可以操作】

-rw-rw-r--. 1 wutao wutao 7 8月 28 05:33 /tmp/sss

[[email protected] ~]$ echo 123123 > /tmp/s

现在为了安全起见,在tmp临时目录下创建的文件,除了自己和root外,其他用户都不能操作。也就是非共用了!!

那么这个时候就要给tmp设置t权限了!

[[email protected] ~]# ll -d /tmp

drwxrwxrwx. 20 root root 4096 8月 28 05:33 /tmp

[[email protected] ~]# chmod 1777 /tmp 【设置t权限】

[[email protected] ~]# ll -d /tmp

drwxrwxrwt. 20 root root 4096 8月 28 05:33 /tmp

[[email protected] ~]# su - wangshibo

[[email protected] ~]$ ll -d /tmp

drwxrwxrwt. 20 root root 4096 8月 28 05:37 /tmp

[[email protected] ~]$ ll /tmp/sss

-rw-rw-r--. 1 wutao wutao 4 8月 28 05:36 /tmp/sss

[[email protected] ~]$ echo 555 > /tmp/sss

-bash: /tmp/sss: 权限不够

[[email protected] ~]$

【这个时候,wangshibo用户就不能操作sss文件了。如果要想再拥有操作权限,可以把wangshibo用户加到wutao组内,因为sss文件所在组有w写权限】

《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《

一般情况下,切换到root帐号下,需要知道root密码,su命令切换

但是使用sudo命令,不需要知道root密码,只需要知道自己的密码即可!但是前天是要把该用户加入到/etc/sudoers文件内,即加入到sudo的文件内!

sudo权限: 是为了让普通用户切换到root用户下(这种方式不许要知道root密码)

sudo所在文件:/etc/sudoers

但是也可以使用visudo命令进行编辑,但是只有在root用户下才可以!

其他用户下,就只能编辑/etc/sudoers文件了

在root用户下,使用visudo命令编辑:

rootALL=(ALL) ALL 在这下面添加用户

比如:

wutao ALL=(ALL) ALL 这说明给wutao用户设置了sudo权限,可以sudo su - 切换到root帐号下,也可以sudo 加其他命令操作

wutao ALL=(ALL) NOPASSWD: AL 这表示切换时不许要输入自己的密码

比如给wutao用户设置了sudo权限,在上面已经添加了,并无密码

****************************************************************************************************************************************************************

su和sudo切换命令的时候,注意有个-

加-,表示不仅切换到用户下,连同用户的系统环境变量也切换进来了 【切换前后执行env看下环境变量】

不加-,表示仅仅切换到用户状态下,用户的系统环境变量没有切换进来

su root 仅仅切换到root用户状态下,root的系统环境变量没有切换过来 【比如说有些只能在root下操作的命令,不加-虽然切换到root下了,但是还不能操作】

su - root 不仅切换到root下了,root的系统环境变量也切换过来了

****************************************************************************************************************************************************************

sudo权限设置的时候,也可以根据组进行设置

比如设置如下,那么表示在wheel组内的所有用户都有sudo权限

%wheel ALL=(ALL) NOPASSWD: ALL

[[email protected] ~]# gpasswd -a wangshibo wheel 把wangshibo加入到wheel组内

可参考本人在evernote上的一篇相关笔记:

https://www.evernote.com/shard/s311/sh/b692f3c6-cbe7-44c7-9bca-eee2da049907/4bdcb0311f9d9740ecb3b32afde80637

原文:http://www.cnblogs.com/kevingrace/p/5823003.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值