之前已经涉及过一下文件权限,这次主要联系上用户更进一步了解文件权限。
一、添加组fruit、drink
sudo groupadd fruit
sudo groupadd drink
如何察看是否添加成功?
cat /etc/group
得到结果
fruit:x:1003:
drink:x:1004:
第一个表示组名,第二个x是表示密码(加密、不能看见),第三个表示组的id
二、添加用户apple 、pear、 tea三个用户 ,
我们利用useradd来创建,注意,在ubuntu下useradd apple会创建出无主文件夹,无shell,无密码的用户。要加入参数。
-c:加上备注文字,备注文字保存在passwd的备注栏中。
-d:指定用户登入时的启始目录。
-D:变更预设值。
-e:指定账号的有效期限,缺省表示永久有效。
-f:指定在密码过期后多少天即关闭该账号。
-g:指定用户所属的群组。
-G:指定用户所属的附加群组。
-m:自动建立用户的登入目录。
-M:不要自动建立用户的登入目录。
-n:取消建立以用户名称为名的群组。
-r:建立系统账号。
-s:指定用户登入后所使用的shell。
-u:指定用户ID号。
当然,例子最实际。
sudo useradd -d/home/apple -g 1003 -m -s /bin/bash apple
sudo useradd -d/home/pear -g 1003 -m -s /bin/bash pear
sudo useradd -d/home/tea -g 1004 -m -s /bin/bash tea
主要用法就是sudo user -d/主文件目录 -g 组id -s /bin/bash(利用bash来解释shell) 用户名
如何察看是否成功添加?
cat /etc/passwd
如何设置密码?
sudo passwd 用户名
例子:
sudo passwd pear
sudo passwd apple
sudo passwd tea
三、切换到pear用户
su pear [su意思为switch user]
之后进入pear的home目录
cd
添加一个文件pear.java
可以利用gedit,vi等等,我就利用vi吧
vi pear.java
i(进入插入模式)
class pear{
public static void main(String []args){
System.out.println("I am pear!");
}
}
保存退出
:wq
察看权限
ls -l
四、切换到apple用户
su apple
进入home
cd /home
进入pear的目录
cd pear
列出权限
ls -l
可以发现
-rw-r--r-- 1 pear fruit 94 1月 30 11:35 pear.java
该权限是,所有者可以读可以写可以执行可以写
同组的只能读,其他用户也只能读,可以尝试修改
vi pear.java
尝试修改,保存:wq,发现报错
不保存推出后,尝试编译javac pear.java
也会报错
pear.java:2: 写入 pear 时出错: pear.class (Permission denied)
这就是同组的权限出错。
四、修改权限
修改权限可以用所有者执行,也可以用根用户执行,也可以提权执行。
比如我切换到root后修改pear的目录权限
su
cd \home
chmod 000 pear
这时候,所有人都进不去了
注:r代表4,w代表2,x代表1,000分别对应于所有者,同组,其他用户的权限所加值,好像可读可写可执行就是7。
当然,我们还是正常地
chmod 740 pear
我们切换到apple,发现能进去pear,但是切换到tea的时候不能进入pear的目录了。