Linux用户管理与文件权限

root用户:

Linux系统的特性就是可以满足多个用户,同时工作,因此Linux系统必须具备很好的安全性。
在安装RHEL7时设置的root管理员密码,这个root管理员就是所有UNIX系统中的超级用户,它拥有最高的系统所有权,能够管理系统的各项功能,如添加/删除用户,启动/关闭进程,开启/禁用硬件设备等等。

在Linux系统中,用户也有自己的UID身份账号且唯一
系统管理员UID为0
系统用户UID为1~999    Linux安装的服务程序都会创建独有的用户负责运行。
普通用户UID从1000开始:由管理员创建
为了方便管理属于同一组的用户,Linux 系统中还引入了用户组的概念。通过使用用 户组号码(GID,Group IDentification),我们可以把多个用户加入到同一个组中,从而方 便为组中的用户统一规划权限或指定任务。
假设有一个公司中有多个部门,每个部门中又 有很多员工。如果只想让员工访问本部门内的资源,则可以针对部门而非具体的员工来设 置权限。

创建普通用户:

#添加用户
useradd andy

#设置密码       
passwd redhat

root用户可以修改其他所有人的密码,且不需要验证

切换用户

su命令可以切换用户身份的需求,
su - username

su命令中间的-号很重要,意味着完全切换到新的用户,即环境变量信息也变更为新用户的信息
 
#先看下当前用户(我是谁)
whoami
#切换用户
su - andy
#退出用户登录
logout
ctrl + d

userdel删除用户

-f     强制删除用户
-r    同事删除用户以及家目录
userdel -r pyyu 

一些规则 :

1.超级用户root切换普通用户无需密码,例如“群主”想踢谁就踢谁
2.普通用户切换root,需要输入密码
3.普通用户权限较小,只能基本查看信息
4.$符号是普通用户命令提示符,#是超级管理员的提示符

groupadd命令

group命令用于创建用户组,为了更加高效的指派系统中各个用户的权限,在工作中常常添加几个用户到一个组里面,这样可以针对一类用户安排权限。


sudo命令:

sudo命令用来以其他身份来执行命令,预设的身份为root。在/etc/sudoers中设置了可执行sudo指令的用户。若其未经授权的用户企图使用sudo,则会发出警告的邮件给管理员。用户使用sudo时,必须先输入密码,之后有5分钟的有效期限,超过期限则必须重新输入密码

语法格式:
-b:在后台执行指令;
-h:显示帮助;
-H:将HOME环境变量设为新身份的HOME环境变量;
-k:结束密码的有效期限,也就是下次再执行sudo时便需要输入密码;。
-l:列出目前用户可执行与无法执行的指令;
-p:改变询问密码的提示符号;
-s<shell>:执行指定的shell;
-u<用户>:以指定的用户作为新的身份。若不加上此参数,则预设以root作为新的身份;
-v:延长密码有效期限5分钟;
-V :显示版本信息。

有时,当我们权限不足时,想到用sudo来执行,比如 sudo ls /root/ 会提示andy is not in the sudoers file,这时我们就需要修改/etc/sudoers文件,但直接用vim编辑可能 会导致错误,可以使用专用命令:visudo,这个命令可以检查语法

 

文件目录与权限

Linux权限主要依据三种身份来决定:

[root@centos1 ~]# ls -l /var/log/cron
-rw-------. 1 root root 18286 Oct 28 23:15 /var/log/cron

分别查出的结果对应:权限 文件链接数 属主 属组 文件大小 修改日期 文件名

详细解读:

  1. 权限,第一个字母为文件类型,后续9个字母,每3个一组,是三种身份的权限
  2. 文件链接数
  3. 文件拥有者-属主
  4. 文件拥有组-属组
  5. 文件大小
  6. 最后一次被修改的时间日期
  7. 文件名 

文件类型有:

-    一般文件
d    文件夹
l    软连接(快捷方式)
b    块设备,存储媒体文件为主
c    代表键盘,鼠标等设备

文件权限 

r    read可读,可以用cat等命令查看
w    write写入,可以编辑或者删除这个文件
x    executable    可以执行

权限与数字转化

通过id命令查看用户的群组

[root@centos1 ~]# id root
uid=0(root) gid=0(root) groups=0(root)
[root@centos1 ~]# id andy
uid=1001(andy) gid=1002(andy) groups=1002(andy)

修改文件权限属性

普通用户只能修改自己的文件名,时间与权限(注意)因此修改其他用户权限,只能用root用户

chown 修改属主

chgrp 修改属组

[root@centos1 ~]# ll
total 16
-rw-r--r--. 1 root root 14275 Oct 28 20:30 LemonBench.Result.txt
[root@centos1 ~]# chown andy LemonBench.Result.txt
[root@centos1 ~]# ll
total 16
-rw-r--r--. 1 andy root 14275 Oct 28 20:30 LemonBench.Result.txt
[root@centos1 ~]# chgrp andy LemonBench.Result.txt
[root@centos1 ~]# ll
total 16
-rw-r--r--. 1 andy andy 14275 Oct 28 20:30 LemonBench.Result.txt

 

文件权限:

我们已知三种身份权限(属主,属组,其他人),每种身份都有rwx的三种权限,系统还提供了数字计算权限。

对应的数字关系:

r    read        4
w    write       2
x    execute     1

每种身份最低是0分,最高是r+w+x 7分

因此三种身份,最高权限是777,最低是000

chmod 修改权限:

chmod [身份]   [参数]   [文件]
    u(user)   +(添加)  
    g(group)   -(减去)
    o(other)  =(赋值)
    a(all)

例如:

减去属主的w权限

[root@centos1 ~]# ll LemonBench.Result.txt
-rw-r--r--. 1 andy andy 14275 Oct 28 20:30 LemonBench.Result.txt
[root@centos1 ~]# chmod u-w LemonBench.Result.txt
[root@centos1 ~]# ll
total 16
-r--r--r--. 1 andy andy 14275 Oct 28 20:30 LemonBench.Result.txt

添加属主可读可写可执行权限

[root@centos1 ~]# chmod 700 LemonBench.Result.txt
[root@centos1 ~]# ll
total 16
-rwx------. 1 andy andy 14275 Oct 28 20:30 LemonBench.Result.txt

修改文件名:mv

[root@centos1 ~]# mv LemonBench.Result.txt LemonBench.txt
[root@centos1 ~]# ll
total 16
-rwx------. 1 andy andy 14275 Oct 28 20:30 LemonBench.txt

改变文件时间:touch

[root@centos1 ~]# ll
total 16
-rwx------. 1 andy andy 14275 Oct 28 20:30 LemonBench.txt
[root@centos1 ~]# touch LemonBench.txt
[root@centos1 ~]# ll
total 16
-rwx------. 1 andy andy 14275 Oct 28 23:39 LemonBench.txt

 

上一篇:Linux网络相关命令

下一篇:Git 常见命令