查看我们创建的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权限。
虽然我们最后没有完成我们的需求,但是对文件权限应该有一个大致的了解了。