linux-06-文件权限

 查看我们创建的newfile.txt文件

看到我们之前创建的newfile.txt文件

权限是-rw--r--r--

从左到右顺序

-:表示文件

rw:对于所有者而言可读可写

r:对于组而言可读

r:对于其它用户可读

 

再看看moved目录:

 

唯一不同的是权限这一栏,第一个字符为d,而不是-,表示这是一个目录。

权限:drwxr-xr-x后面的要理解成三栏

rwx   r-x  r-x

分别对应

所有者 组 其它用户

-表示占位符

现在我们想试试这个r,/root/new/newfile.txt和moved文件对physics用户隐藏,应该怎么做?

首先physics得进入这个/root/new路径下,我们可以在ftp软件下修改权限,如下

也可以使用chmod命令修改权限

先解释一下我们经常遇到的777

本质上,是三个二进制数

111,111,111,

上面的所有者三个勾,相当于读取是第三位,写入是第二位,执行是第一位,也就是111,也就是十进制7

同理,假如有一个权限是222,就相当于010,010,010,也就是十进制数2,2,2,也就是-r--r--r-,如下

不知道为什么全是读,看看ls -al

这显示有问题?

再改为全读试试

这说明两点:

1.还是要用命令修改比较好

2.学好计算机组成原理,走遍天下都不怕

附表格:

 操作目录操作文件
r查看目录查看文件
w修改目录修改文件
x进入目录执行文件

 

修改对象修改命令参数说明
所有者chown-R文件/目录R表示递归操作
chgrp-R   组名文件/目录修改该文件为某组名
权限chmod-R 777文件/目录 
 chmod-R [ugoa][+-=][rwx] u:user g:group o:others a:all

 

 

回到上面来,我们有这样一个需求:

创建一个super用户,其用户组super,可以操作/root/new目录及其文件夹。(更换网络后使用hostname -I查询IP地址)

我们创建两个普通用户user1 user2,属于用户组ordinary

user1和user2分别在/root/new用户下创建文件以及目录

/root/new/folder1/file1.txt

/root/new/folder2/file2.txt

其中user1只能看到file1.txt,user2只能看到file2.txt

也就是说user1可以看到folder2文件夹,但是点不开该目录。user2看不到folder1文件夹。

这一套下来对权限操作应该就熟了。

1.首先创建super用户以及用户组,并赋权

[root@localhost ~]# groupadd super
[root@localhost ~]# useradd super-user
[root@localhost ~]# usermod -g super super-user

 [root@localhost ~]# groups super-user
super-user : super

2.接着切换到super用户下创建user1 user2

[root@localhost ~]# su - super-user

不知道为什么不需要设置密码,可能root用户切换到别的用户都不需要密码把

看来super组或者super用户需要修改/etc/passwd的权限

因此切换回root用户并修改文件的权限

我选择直接修改组权限

[root@localhost etc]# usermod -a -G root super-user
[root@localhost etc]# groups super-user
super-user : super root
[root@localhost etc]# 

现在super-user 也在root组下了(好像有点多此一举,但是我如果直接修改权限为645,那么所有用户都有执行权限了,也只能想到这个方式)

然后super用户先创建组users-group

我的super-user用户已经加入了root组,却无法写这个文件?

看来只能修改这个文件权限了,索性把/etc的写权限全放给root组(这个操作我不知道合不合理,因为我只想让super-user有创建用户的权限)

[root@localhost etc]# chmod -R g+w /etc

接着出现下面错误:

 

索性将/etc目录下所有文件增加rwx权限给root组

没办法了,百度吧,居然搜到了这个隐藏权限

https://blog.csdn.net/yabingshi_tech/article/details/52780134

还有这种操作?

试试吧(感觉骚操作太多了,要不以后就用root用户吧)

[root@localhost etc]# chattr -i /etc/gshadow
[root@localhost etc]# chattr -i /etc/group

顶不住了,先到这里吧

我又回来了

在用xhell连接linux中,Could not connect to '192.168.50.181' (port 22): Connection failed.

搜到了一个答案https://blog.csdn.net/weixin_38202389/article/details/82748607

在虚拟机里面执行下面的命令

 rm -rf /etc/ssh/ssh*key 
service sshd restart

然后继续执行我们的groupadd user-group,出错

groupadd:将更改写入 /etc/group 时失败

发现了群组还需要切换

[super-user@localhost ~]$ id
uid=1001(super-user) gid=1002(super) 组=1002(super),0(root) 环境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023

可以看到当前组是super(话说前面的隐藏权限是不是不需要清除?)

使用newgrp切换群组

[super-user@localhost ~]$ newgrp root

[super-user@localhost ~]$ id
uid=1001(super-user) gid=0(root) 组=0(root),1002(super) 环境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023

发现root组在前面

现在继续执行

[super-user@localhost ~]$ groupadd user-group
groupadd:将更改写入 /etc/group 时失败

修改了others权限后,仍旧无法增加组

[super-user@localhost ~]$ ls -al /etc/group
-rw-rwxrwx. 1 root root 511 7月   7 18:25 /etc/group

有机会再看把,现在就用root用户增加组和用户吧

[root@localhost ~]# groupadd user-group
[root@localhost ~]# useradd user1 -g user-group
[root@localhost ~]# groups user1
user1 : user-group
[root@localhost ~]# useradd user2 -g user-group
[root@localhost ~]# groups user2
user2 : user-group

把/root/new切换到组user-group

chgrp user-group /root/new

修改/root/new权限

chmod 770 /root/new

user1创建file1

[user1@localhost ~]$ cd /root/new
-bash: cd: /root/new: 权限不够

root文件夹修改权限

添加其它的执行权限,user1才能进入root目录(或者把user1加入并切换到root组)

创建文件

touch /root/new/folder1/text1.txt

按同样方法,user2在路径/root/new/folder2下创建text2.txt

我们查看这两个文件的权限

现在user2是能进入folder1目录下,并且也能读text1.txt,

我们的要求是 user2看不到folder1文件夹

修改folder1文件夹权限

folder1的权限是700,对于组内用户和其它用户,不可修改,不可进入该目录,但是在user2用户仍旧能看到该文件夹,难道隐藏文件夹只能加.号表示了吗

先看一下,rwx对文件夹来说,意味着什么。

当folder1权限是700时,user2用户不能cd到folder1,也不能用ls命令查看

当folder1权限是710时,也就是对于组user-group,可执行权限,可以使用cd命令,不可以使用ls

当权限是740时,可以ls,不可以cd

当权限是 720时,不可以ls,不可以cd,也不能创建文件夹和文件

明明是可写,为什么创建不了新文件夹和新文件?

加一个可执行权限?

修改folder1权限为730

可以创建文件,也可以创建文件夹

没有可读文件,看来是使用不了ls命令

看来想要创建文件夹和文件,得有父级文件夹的WX权限。

虽然我们最后没有完成我们的需求,但是对文件权限应该有一个大致的了解了。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值