7 权限(重点)

  • id –显示用户身份号
  • chmod –更改文件模式
  • umask –设置默认的文件权限
  • su –以另一个用户的身份来运行 shell
  • sudo –以另一个用户的身份来执行命令
  • chown –更改文件所有者
  • chgrp –更改文件组所有权
  • passwd –更改用户密码

1.为什么要设置权限?

   因为Unix系统式多用户系统,硬件设备需要多用户共享,一台计算机连接到一个网络,那么远程用户通过ssb(安全shell)可以登录并操纵这台电脑,比如运行图像用户界面应用程序。

2.超级用户权限:

           安装和更新软件,编辑系统配置文件,访问设备

一、文件属性——id显示用户身份号

1.id显示用户身份号

xiaohui@ubuntu:~$ id
输出uid=1000(xiaohui) gid=1000(xiaohui) groups=1000(xiaohui),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),109(lpadmin),128(sambashare)

此处注意:

1)不同系统中用户的uid和gid不同,如Fedora 系统从 500 开始进行普通用户帐户的编号,而 Ubuntu 从 1000 开始;

2)用户账号定义在/etc/passwd文件中,用户组定义在/etc/group文件中,用户密码包含在/etc/shadow文件中,并且用户账户和用户组创建以后,这些文件随着/etc/shadow的变动而改变;

3)uid是用户ID     gid是用户组

2.文件属性——读取,写入和执行

    文件和目录的访问权利是根据读访问,写访问和执行访问来定义的,以随便一个文件列表为例

xiaohui@ubuntu:~$ ls -l foo.txt
输出-rw-rw-r-- 1 xiaohui xiaohui 0 Aug 18 00:27 foo.txt

  输出结果中前十个字符是文件的属性,第一个字符表明文件类型,后九个字符表明文件模式,也叫文件所有者,和其他人的读、写、执行权限

1)文件类型

- 一个普通文件
d 一个目录
l 一个字符链接
c 一个字符设备文件,按照字节流处理数据,比如终端机,调制解调器
b 一个块设备文件,按照数据块处理数据设备,如硬盘,CD-ROM盘

2)文件模式

r 读取
w 写入
x 执行

 二、更改文件模式——chmod

    更改文件或目录的模式(权限),可以用chmod命令,注意只有文件所有者或超级用户才能

1.八进制数字表示法(一个八进制数字代表三个二进制数字)

Octal Binary File Mode
0 000 ---
1 001 --x
2 010 -w-
3 011 -wx-
4 100 r--
5 101 r-x
6 110 rw-
7 111 rwx

   通过3个八进制数字,设置文件所有者,用户组,其他人权限 (文件用户)。。。区别文件属性(文件类型,文件所有者的权限,文件所有者所在组的权限,其他用户的权限)

设置foo.txt为文件所有者权限为读写权限,而删除用户组和其他人的用户权限
原来:
xiaohui@ubuntu:~$ >foo.txt
xiaohui@ubuntu:~$ ls -l foo.txt
-rw-rw-r-- 1 xiaohui xiaohui 0 Aug 18 00:47 foo.txt
更改权限:
xiaohui@ubuntu:~$ chmod 600 foo.txt
xiaohui@ubuntu:~$ ls -l foo.txt
-rw------- 1 xiaohui xiaohui 0 Aug 18 00:47 foo.txt

2.符号表示法

1)通过字符“ u”,“ g”,“ o”, and “ a”的组合来指定要影响的对象,不指定时默认为all

u 文件所有者
g 用户组
o 其他人
a all

2)执行的操作可能是一个“+”字符,表示加上一个权限,一个“-”,表示删掉一个权限,或者是一个“=”,表示只有指定的权限可用,其它所有的权限被删除

          如:u+x表示为文件所有者添加可执行权限

符号表示法的优点是,允许你设置文件模式的单个组成部分的属性,而没有影响其他的部分。

3.借助GUI来设置文件模式

     打开桌面的Files文件,找到创建的文件foo.txt 然后右键properties,然后在peimissions中可以修改文件模式

 三、设置默认权限——umask

 1.umask控制着文件的默认属性 

xiaohui@ubuntu:~$ > foo.txt
xiaohui@ubuntu:~$ ls -l foo.txt
-rw-rw-r-- 1 xiaohui xiaohui 0 Aug 18 01:15 foo.txt
xiaohui@ubuntu:~$ umask
0002    一般都是响应这个值

 2.用umask来改变文件权限

                  原理:掩码中出现一个数字1,则删除文件模式中和这个1在相同位置的属性。比如

xiaohui@ubuntu:~$ rm foo.txt
xiaohui@ubuntu:~$ umask 0000
xiaohui@ubuntu:~$ > foo.txt
xiaohui@ubuntu:~$ ls -l foo.txt
-rw-rw-rw- 1 xiaohui xiaohui 0 Aug 18 01:41 foo.txt
xiaohui@ubuntu:~$ rm foo.txt
xiaohui@ubuntu:~$ umask 0002  掩码值为0002,修改文件模式
xiaohui@ubuntu:~$ > foo.txt
xiaohui@ubuntu:~$ ls -l foo.txt
-rw-rw-r-- 1 xiaohui xiaohui 0 Aug 18 01:42 foo.txt
original file mode --- rw- rw- rw-
mask 000 000 000 010
result --- rw- rwp r--

四、更改身份

             一般更改为超级用户,去完成一些超级用户权限的任务:安装和更新软件,编辑系统配置文件,访问设备

1.su——以其他用户身份和组ID运行一个shell

格式   su [-[l]] [user]

  • 如果包含-l,那么会为指定用户启动一个需要登陆的shell,这意味着会加载此用户的shell环境,并且工作目录会更改到这个用户的主目录,如果不指定用户,那就假定为超级用户
  • -l可以写成-   例1
  • 使用-c可以只执行单个命令,而不是启动一个新的可交互的shell  
xiaohui@ubuntu:~$ su -
Password: 
root@ubantu:~#       开始超级用户的命令输入,注意此处提示是#
root@ubantu:~#  exit        返回原来的shell
xiaohui@ubuntu:~$

2.sudo——以另一个用户身份执行命令

sudo与su的区别

       sudo允许一个普通用户以不同身份(通常是超级用户),通过一种非常可靠地方式来执行命令

       sudo不要求超级用户密码;

       sudo不会重启一个shell,也不会加载另一个用户的shell运行环境,命令不必加单引号

xiaohui@ubuntu:~$ su -c 'ls -l /root/*'
Password: 
su: Authentication failure   因为我的密码填错了
xiaohui@ubuntu:~$ sudo -c ls -l /root/*
usage: sudo -h | -K | -k | -V
usage: sudo -v [-AknS] [-g group] [-h host] [-p prompt] [-u user]
usage: sudo -l [-AknS] [-g group] [-h host] [-p prompt] [-U user] [-u user]
            [command]
usage: sudo [-AbEHknPS] [-r role] [-t type] [-C num] [-g group] [-h host] [-p
            prompt] [-u user] [VAR=value] [-i|-s] [<command>]
usage: sudo -e [-AknS] [-r role] [-t type] [-C num] [-g group] [-h host] [-p
            prompt] [-u user] file ...

 五、更改文件所有者和用户组——chown

格式: chown [owner] [:group] [:group]] file...

例:

 六、chgrp——更改用户组所有权

chown只能更改文件所有权,而不是用户组所有权,需要用chgrp完成

 七、更该用户密码

格式passwd [user]

 

原文地址:https://www.cnblogs.com/xiaoxiaohui2015/p/5782047.html