《Linux基础》04. 用户管理 · 用户组 · 相关文件 · 权限管理

Posted 镜坛

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了《Linux基础》04. 用户管理 · 用户组 · 相关文件 · 权限管理相关的知识,希望对你有一定的参考价值。

Linux基础。用户管理指令、用户组指令、用户和组相关文件、拥有者、所属组、其它组、权限。


本文以 CentOS7.6 为例

1:用户管理指令

Linux 系统是一个多用户多任务的操作系统。任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。

1.1:添加用户

基本语法
useradd 用户名

默认一个用户的家目录在 /home/用户名/
当创建用户成功后,会自动的创建和用户同名的家目录。

添加用户并指定家目录
useradd -d 指定目录 用户名

1.2:修改用户密码

基本语法
passwd 用户名
命令执行后输入密码即可。

注意:如果只执行 passwd 命令,则是给当前登录用户更改密码

1.3:用户切换与注销

切换用户
su - 用户名

从权限高的用户切换到权限低的用户,不需要输入密码,反之需要。

注销用户
方式一、logout
方式二、exit

登录时尽量少用 root 帐号登录,因为它是系统管理员,有最大的权限,操作失误后果可能会很严重。
一般用普通用户登录,如果需要,再用 “ su - root ” 命令来切换成系统管理员身份使用。

1.4:删除用户

删除用户但保留家目录
userdel 用户名

删除用户且删除家目录
userdel -r 用户名

一般情况下,删除时建议保留家目录。

1.5:查询用户信息

基本语法
id 用户名

当用户不存在时,返回无此用户。

1.6:查看当前登录用户

查看登录用户
who am i

查看当前用户
whoami

注意:
两个指令的区别:例如使用 root 登录,然后使用 su - bob 切换到 bob 用户,则
使用 whoami 指令,显示为 bob 用户
使用 who am i 指令,显示为 root 用户

1.7:查看有哪些用户

用户信息存放在 /etc/passwd 文件中,所以可以查看 passwd 的文件内容来查看有哪些用户:
方式一、cat /etc/passwd
方式二、cat /etc/passwd | cut -f 1 -d :

2:用户组指令

类似于角色,系统可以对有共性/权限的多个用户进行统一的管理

linux 中的每个用户必须属于一个组,不能独立于组外。

2.1:新增组

基本语法
groupadd 组名

2.2:删除组

基本语法
groupdel 组名

2.3:给用户分配组

添加用户时就分配组
useradd -g 组名 用户名

如果在添加用户时不指定组,则会自动创建和用户同名的组并将用户分配到这个组。

将用户分配到指定组
usermod -g 组名 用户名

2.4:更改用户登陆初始目录

基本语法
usermod -d 目录名 用户名

用户需要有进入到新目录的权限。

3:用户和组相关文件

/etc/passwd
用户(user)的配置文件,记录用户的各种信息。
每行含义:用户名 : 口令 : 用户标识号 : 组标识号 : 注释性描述 : 主目录 : 登录 Shell。

一般来说,第三个参数(即用户标识号)在500以上的,就是后面建的用户了,其它则为系统用户。

/etc/shadow
口令的配置文件。
每行含义:登录名 : 加密口令 : 最后一次修改时间 : 最小时间间隔 : 最大时间间隔 : 警告时间 : 不活动时间 : 失效时间 : 标志。

/etc/group
组(group)的配置文件,记录 Linux 包含的组的信息。
每行含义:组名 : 口令 : 组标识号 : 组内用户列表。

4:拥有者、所属组、其它组

在 Linux 中,对每个文件或目录(文件和目录:统称 “ 文档 ”),有拥有者所属组其它组的概念。

之后权限部分会涉及这些概念。

查看文档信息
ls -ahl

示例:
如下图,红框部分即拥有者,绿框部分即所属组。

  • 拥有者

默认情况下,拥有者就是文档的创建者

修改文档拥有者
chown [选项] 用户名 文档名

选项 说明
-R 如果是目录,则使其下所有子文件或目录递归生效
  • 所属组

默认情况下,当某个用户创建了一个文档后,这个文档的所属组就是该用户所在的组

修改文档所属组
chgrp [选项] 组名 文档名

修改文档拥有者与所属组
chown [选项] 用户名:组名 文档名

选项 说明
-R 如果是目录,则使其下所有子文件或目录递归生效
  • 其它组

除文档的拥有者和所属组的用户外,系统的其它用户都属于其它组

5:权限

ls -l 可用来查看目录下文档详细信息。信息可分为 7 列。

示例:

信息显示为七列

     一     | 二 |  三   |  四  |  五  |       六      |   七   
=================================================================
-rw-r--r--.   1    tom    root   176    Feb 2  09:39   pig.txt
drwxr-xr-x.   2    root   root   4.0K   Dec 16 02:34   home
=================================================================
  • 第一列:表示文档类型与权限。
  • 第二列:对文件:硬连接数。对目录:子目录数与文件数量之和。
  • 第三列:表示拥有者。
  • 第四列:表示所属组。
  • 第五列:文档大小。
  • 第六列:文档最后修改时间。
  • 第七列:文档名称。

其中第一列又可分为10位,用 0 ~ 9 表示。

0  1  2  3  4  5  6  7  8  9 
=============================
-  r  w  -  r  -  -  r  -  -
d  r  w  x  r  -  x  r  -  x
=============================
  • 第0位:代表文档类型。
  • 第1~3位:拥有者(User)对该文档拥有的权限。
  • 第4~6位:所属组(Group)对该文档拥有的权限。
  • 第7~9位:其它组(Others)对该文档拥有的权限。
文档类型 说明
d 目录。相当于 Windows 的文件夹。
l 链接。相当于 Windows 的快捷方式。
c 字符设备文件。如鼠标,键盘等。
b 块设备。比如硬盘。
- 普通文件

而权限分为 r、w、x。“ - ” 代表无此权限。

5.1:权限介绍

权限可作用于文件和目录。

权限 说明 作用于文件 作用于文件
r read,代表可读 可以读取,查看 可以读取,查看目录内容
w write,代表可写 可以修改,但是不代表可以删除该文件 可以修改,可在目录内创建、删除文档
x execute,代表可执行 可以被执行 可以进入该目录

为了方便,权限也可用数字来表示:

  • r = 4
  • w = 2
  • x = 1

示例:

rwx = 4 + 2 + 1 = 7
rw- = 4 + 2 + 0 = 6
r-x = 4 + 0 + 1 = 5
r-- = 4 + 0 + 0 = 4

5.2:权限修改

通过 chmod 指令,可以修改文档的权限。

基本语法
chmod [权限修改] 文档名

而 “ 权限修改 ” 操作,有两种方式。

  • 方式一

通过 +-= 来变更权限。“ + ” 代表授予某个权限,“ - ” 代表撤销某个权限。

且用以下字母来代表权限修改的对象:
u:拥有者。
g:所属组。
o:其它组。
a:所有人(u、g、o 的总和)。

示例:

# 给 dog.txt 文件的拥有者读、写、执行的权限,给所属组读、执行权限,给其它组读、执行权限
chmod u=rwx,g=rx,o=rx dog.txt
# 给 dog.txt 文件的拥有者除去执行的权限,增加所属组写的权限
chmod u-x,g+w dog.txt
# 给 dog.txt 文件的所有用户添加读的权限
chmod a+r dog.txt
  • 方式二

通过数字组合来变更权限。

且第一个数字为拥有者,第二个数字为所属组,第三个数字为其它组。

示例:

# 将 /home/abc.txt 文件的权限修改成 rwxr-xr-x
方式一、 chmod u=rwx,g=rx,o=rx /home/abc.txt
方式二、 chmod 755 /home/abc.txt

linux基础:用户与组,权限管理

linux中用户与权限管理


    与Window的单用户系统不同,Linux操作系统在设计之初就遵循着多用户、多任务的理念。而在这种情况下,安全问题非常重要,不同用户,不同的用户组之间的隐私保护,安全管理就非常有必要。对于这个问题,Linux就有了对于不同的用户,不同的组对于文件有不同的权限,以使用确保安全。


用户的概念

    用户:由于Linux系统是一个多用户系统,每个用户又有不同的组。为了便于管理用户,所以在我们注册帐号时,系统会自动分配给我们一个ID,标识此用户的唯一性。而ID信息一般都存储与/etc/passwd 文件中。每个登陆用户至少都会取得两个ID,一个是用户ID(User ID,UID),一个是组ID(Group ID,GID),文件判断它的所有者与组就是利用UID与GID。

    

    根据权限的不同,Linux系统把用户分为管理员账户,系统账户,普通账户,并用GID与UID进行标识


    root用户,即管理员,自动分配,UID=0,GID=0

  CentOS7系统中,系统账户UID范围:1-999

                 普通用户UID范围:1000-60000

                 

                 系统账户GID范围:1-999

                 普通用户GID范围:1000-60000


我们可以使用id命令查询相应用户的信息:id username


[[email protected] /]# id zhangpf

uid=1000(zhangpf) gid=1000(zhangpf) 组=1000(zhangpf),10(wheel)

如上所示:用户zhangpf的uid值为1000,gid值为1000,所属的组是zhangpf,附加组为wheel


用户管理,一般只有管理员有此权限。常用的命令有

useradd:添加用户,并配置用户信息

userdel:删除用户

passwd:设置用户密码,修改密码

usermod:账户相关数据微调,可以为单个用户添加多个组


figer:类似指纹功能,能够查询到用户的相关属性


用户组管理:

groupadd:添加用户组

groupmod:与usermod的用法相似,修改组的相关参数

groupdel:删除组

gpasswd:用户组管理员功能


注意:对于用户的管理与组的管理,一般只有管理员有此权限。


文件属性与权限:对于Linux系统而言,遵循“一切皆文件”的哲学思想,不管是硬件资源还是其他的所有资源都被当作文件进行处理。而每个文件都有属性,对于不同的使用者,有不同的权限。在Linux中可以使用ls命令查看文件的属性:


[[email protected] /]# ls -l

总用量 44

lrwxrwxrwx.   1 root root    7 2月  27 17:28 bin -> usr/bin

dr-xr-xr-x.   4 root root 4096 2月  28 17:38 boot

drwxr-xr-x.  20 root root 3260 3月   8 10:29 dev

drwxr-xr-x.  16 root root 4096 3月   8 14:08 home

drwxr-xr-x.  32 root root  960 3月   8 10:29 run

lrwxrwxrwx.   1 root root    8 2月  27 17:28 sbin -> usr/sbin

-rw-------.   1 root root    0 2月  27 17:27 yum.log



如上所示:列出的第一行是文件的属性与权限,


   lrwxrwxrwx:第一个字符代表的是这个文件的属性

              l代表链接文件

              d代表目录

              -代表文件

              b表示设备文件里面的可供存储的接口设备

              c表示设备文件里的串行端口设备,如键盘,鼠标

              接下来的以三个为一组,且均以“rwx”的3个参数组合的方式,其中“r”代表可读,“w”代表可写,“x”代表可执行

                     前面的三个代表属主(owner)的权限,中间的权限是属组(group),最后的是其他人(other)的权限

         第二列表示有多少文件名连接到此节点

         第三列代表的是文件的属主名称

         第四列代表的是文件的属组名称

         第五列是文件的大小,单位是B

         第六七八列代表文件最近被改动的日期

         第九列是文件的文件名



与Windows系统不同,每一文件都添加了各种属性,尤其是在多用户系统下,每个人对于相应的权限,才能做到数据的安全。因此在修改文件与目录的属性之前,一定要慎重!!!那么文件与目录的权限如何修改呢?


chgrp:改变文件所属用户组

chown:改变文件所有者

chmod:改变文件的权限


本文出自 “11283159” 博客,请务必保留此出处http://11293159.blog.51cto.com/11283159/1749705

以上是关于《Linux基础》04. 用户管理 · 用户组 · 相关文件 · 权限管理的主要内容,如果未能解决你的问题,请参考以下文章

linux计算机基础engineer DAY04

软件工程基础·2·一些问题

Linux 基础 - 磁盘管理 -04

Python开发入门14天集训营·第1章Python基础语法-编写登陆认证程序

五·管理mysql

版本管理·玩转git(分支管理)