Linux账号权限管理

Linux账号权限管理

用户账号和组账号概述

用户账号

  • 超级用户:root用户是Linux 操作系统中默认的超级用户账号,对本主机拥有至高无上的权限。
  • 普通用户:需要管理员用户创建,拥有的权限受到一定限制,一般只在用户自己的宿主目录中拥有完整权限。
  • 程序用户:安装 Linux 操作系统及部分应用程序时,会添加一些特定的低权限用户账号,这些用户一般不允许登录到系统,而仅用于维持系统或某个程序的正常运行。

组账号

  • 基本组:每一个用户账号至少属于一个组,这个组称为该用户的基本组(或私有组)。
  • 附加组:若用户除基本组外同时还包含在其他的组中,则这些组称为该用户的附加组(或公共组)

UIDGID

  • UIDLinux操作系统中的每一个用户账号都有一个数字形式的身份标记,称为 UIDroot 用户账号的 UID 号为固定值0,而程序用户账号的 UID号默认为1~499500~60000UID 号默认分配给普通用户使用。

  • GID:与 UID类似,每一个组账号也有一个数字形式的身份标记,称为 GIDGroup IDentity,组标识号)。root组账号的GID号为固定值0,而程序组账号的GID 号默认为1~499500~60000GID 号默认分配给普通组使用。

用户账户管理

用户账户文件

  • /etc/passwd:用于保存用户名称、宿主目录、登录 Shell 等基本信息。
  • /etc/shadow:者用于保存用户的密码、账号有效期等信息。

    在这两个配置文件中,每一行对应一个用户账号,不同的配置项之间使用“:”(冒号)进行分隔。

passwd文件中的配置行格式

  • passwd文件的每一行内容中包含了七个用“:”(冒号)分隔的配置字段,每个配置字段的含义如下:

    sun:x:1000:1000:sun:/home/sun:/bin/bash

字段 含义
第1字段:sun 用户账号的名称
第2字段:x 密码占位符
第3字段:1000 用户账号的UID
第4字段:1000 所属基本组账号的 GID
第5字段:sun 用户全名
第6字段:/home/sun 宿主目录
第7字段:/bin/bash 登录 Shell等信息
  • shadow 文件的每一行内容中包含了九个用“:”(冒号)分隔的配置字段,配置字段的含义分别如下:

    sun:$6$ozmUzfeRN9m7...PWcx0:18117:0:99999:7:::

字段 含义
第1字段:sun 用户账号名称
第2字段:$6$ozmU...PWcx0 使用哈希算法加密的密码字串信息
第3字段:18117 表示从 1970 年 01 月 01 日算起到最近一次修改密码时间隔的天数
第4字段:0 密码的最短有效天数,默认值为0,表示不进行限制。
第5字段:99999 密码的最长有效天数
第6字段:7 提前多少天警告用户密码将过期,默认值为7
第7字段 在密码过期之后多少天内禁用此用户。
第8字段 账号失效时间,默认值为空,表示账号永久可用。
第9字段 保留字段,目前没有特定用途。

添加、修改、删除用户账号

useradd 命令——添加用户账号

  • 命令格式

    useradd [选项]… 用户名...

  • 常用选项
选项 含义
-u 指定用户UID号。
-d 指定用户宿主目录位置。
-e 指定用户的账户失效时间,可使用 YYYY-MM-DD的日期格式。
-g 指定用户的基本组
-G 指定用户的附加组
-M 不建立宿主目录
-s 指定用户的登录shell/bin/bash可以登录系统 ,/sbin/nologin 不可登录系统
[[email protected] ~]# useradd -u 1008 -s /sbin/nologin siti
[[email protected] ~]# tail -3 /etc/passwd
tcpdump:x:72:72::/:/sbin/nologin
sun:x:1000:1000:sun:/home/sun:/bin/bash
siti:x:1008:1008::/home/siti:/sbin/nologin
//创建siti用户,指定UID号1008,指定用户无法登录系统

passwd 命令——为用户账号设置密码

  • 命令格式

    passwd [选项]… 用户名...

  • 常用选项
选项 含义
-d 清空指定用户的密码
-l 锁定用户账户
-S 查看用户账户状态
-u 解锁用户账户
[[email protected] ~]# passwd siti                 //设置siti账户密码
更改用户 siti 的密码 。
新的 密码:
无效的密码: 密码少于 8 个字符
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[[email protected] ~]# passwd -l siti             //锁定siti账户
锁定用户 siti 的密码 。
passwd: 操作成功
[[email protected] ~]# passwd -S siti             //查看账户siti状态
siti LK 2019-08-21 0 99999 7 -1 (密码已被锁定。)
[[email protected] ~]# passwd -u siti             //解锁siti账户
解锁用户 siti 的密码。
passwd: 操作成功
[[email protected] ~]# passwd -S siti            //查看账户siti状态
siti PS 2019-08-21 0 99999 7 -1 (密码已设置,使用 SHA512 算法。)

usermod命令——修改用户账号属性

  • 命令格式

    usermod [选项]… 用户名...

  • 常用选项
选项 含义
-u 修改用户UID
-d 修改用户的宿主目录位置
-e 修改用户的账户失效时间,可使用YYYY-MM-DD的日期格式
-s 指定用户的登录shell
-l 更改用户账号的登录名称
-L 锁定用户账户
-U 解锁用户账户
[[email protected] ~]# usermod -l st11 siti            //更改siti账户名为st11
[[email protected] ~]# tail -2 /etc/passwd             //查看passwd文件后两行信息
sun:x:1000:1000:sun:/home/sun:/bin/bash
st11:x:1008:1008::/home/siti:/sbin/nologin          //账户名已更改
[[email protected] ~]# usermod -L st11                 //锁定st11用户
[[email protected] ~]# passwd -S st11                  //查看st11用户状态
st11 LK 2019-08-21 0 99999 7 -1 (密码已被锁定。)
[[email protected] ~]# usermod -U st11                 //解锁st11用户
[[email protected] ~]# passwd -S st11                  //查看st11用户状态
st11 PS 2019-08-21 0 99999 7 -1 (密码已设置,使用 SHA512 算法。)
[[email protected] ~]# usermod -s /bin/bash st11       //设置st11可以登录系统
[[email protected] ~]# tail -2 /etc/passwd             //查看passwd文件后两行信息
sun:x:1000:1000:sun:/home/sun:/bin/bash
st11:x:1008:1008::/home/siti:/bin/bash              //shell登录已更改

userdel命令——删除用户账号

  • 命令格式

    userdel [选项]… 用户名...

  • 常用选项
选项 含义
-r 递归删除(同时删除宿主目录)
[[email protected] ~]# userdel -r st11              //删除st11用户,同时删除宿主目录
[[email protected] ~]# tail -2 /etc/passwd          //查看passwd文件后两行信息
tcpdump:x:72:72::/:/sbin/nologin
sun:x:1000:1000:sun:/home/sun:/bin/bash          //st11用户已删除

组账号管理

组账号文件

  • /etc/group:用于保存组账号名称、 GID 号、组成员等基本信息。
  • /etc/gshadow: 用于保存组账号的加密密码字串等信息(但是很少使用到)。

    某一个组账号包含哪些用户成员,将会在 group文件内最后一个字段中体现出来(基本组对应的用户账号默认可能不会列出),多个组成员之间使用“,”(逗号)分隔。

添加、管理、删除组账号

groupadd命令——添加组账号

  • 命令格式

    groupadd 要添加的组名称

[[email protected] ~]# groupadd caiwu                 //创建caiwu组
[[email protected] ~]# tail -3 /etc/group             //查看group文件后两行信息
sun:x:1000:
siti:x:1008:
caiwu:x:1009:                                      //创建的caiwu组

gpasswd 命令——添加、设置、删除组成员

  • 命令格式

    gpasswd [选项] [用户名] [组名称]

  • 常用选项
选项 含义
-a 向组内添加一个用户
-d 从组内删除一个用户成员
-M 定义组成员列表,以逗号分隔(注意:当组内有已经有成员时,用此选项将覆盖原组内成员)
[[email protected] ~]# gpasswd -a st11 caiwu         //将st11加入caiwu组
正在将用户“st11”加入到“caiwu”组中
[[email protected] ~]# tail -5 /etc/group            //查看group文件后5行信息
sun:x:1000:
caiwu:x:1009:st11                                 //st11成功加入caiwu组
siti:x:1001:
si22:x:1002:
st11:x:1003:
[[email protected] ~]# gpasswd -d st11 caiwu         //将st11从caiwu组中删除
正在将用户“st11”从“caiwu”组中删除
[[email protected] ~]# tail -5 /etc/group            //查看group文件后5行信息
sun:x:1000:
caiwu:x:1009:                                     //st11从caiwu组中删除
siti:x:1001:
si22:x:1002:
st11:x:1003:
[[email protected] ~]# gpasswd -M st11,si22,siti caiwu  //将st11,si22,siti添加进caiwu组
[[email protected] ~]# tail -5 /etc/group               //查看group文件后5行信息
sun:x:1000:
caiwu:x:1009:st11,si22,siti                          //st11,si22,siti成功加入caiwu组
siti:x:1001:
si22:x:1002:
st11:x:1003:

groupdel命令——删除组账号

  • 命令格式

    groupdel 组名称

[[email protected] ~]# groupdel caiwu                  //删除caiwu组
[[email protected] ~]# tail -5 /etc/group              //查看group文件后5行信息
tcpdump:x:72:
sun:x:1000:
siti:x:1001:
si22:x:1002:
st11:x:1003:                                       //caiwu组已删除

查询账户信息

groups 命令——查询用户账号所属的组

  • 命令格式

    groups 用户名称(当不填写用户名称时默认当前用户)

[[email protected] ~]# groups                //默认查看当前账户所属组
root
[[email protected] ~]# groups sun            //查看sun账户所属组
sun : sun wheel

id——查询用户账号的身份标识

  • 命令格式

    id 用户名称(当不填写用户名称时默认当前用户)

[[email protected] ~]# id                   //默认查看当前用户身份标识
uid=0(root) gid=0(root) 组=0(root) 环境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[[email protected] ~]# id sun               //查看sun用户身份标识
uid=1000(sun) gid=1000(sun) 组=1000(sun),10(wheel)

finger命令——查询用户账号的登录属性

  • 命令格式

    finger 用户名称(当不填写用户名称时默认当前用户)

[[email protected] ~]# finger               //默认查看当前账户登录属性
Login     Name       Tty      Idle  Login Time   Office     Office Phone   Host
root      root       pts/0          Aug 21 21:58                           (192.168.144.1)
[[email protected] ~]# finger sun           //查看sun账户登录属性
Login: sun                      Name: sun
Directory: /home/sun                    Shell: /bin/bash
Last login 五 8月  9 12:19 (CST) on :1
No mail.
No Plan.

w、who、users 命令——查询当前主机的用户登录情况

  • 命令格式

    w 用户名称(当不填写用户名称时默认当前用户)

[[email protected] ~]# w                       //默认查看当前账户登录情况
 00:11:19 up  2:13,  1 user,  load average: 0.00, 0.01, 0.05
root     pts/0    192.168.144.1    21:58    7.00s  0.36s  0.02s w
[[email protected] ~]# who                    //默认查看当前账户登录情况
root     pts/0        2019-08-21 21:58 (192.168.144.1)
[[email protected] ~]# users                  //默认查看当前账户登录情况
root
[[email protected] ~]# w sun                  //查看sun账户登录情况
 00:11:52 up  2:14,  1 user,  load average: 0.00, 0.01, 0.05

文件/目录的权限和归属

访问权限

  • 读取r:允许查看文件内容、显示目录列表
  • 写入w:允许修改文件内容,允许在目录中新建、移动、删除文件或子目录
  • 可执行x:允许运行程序、切换目录

归属

  • 属主:拥有该文件或目录的用户帐号
  • 属组:拥有该文件或目录的组帐号

查看文件/目录的权限和归属

  • 使用带“-l”选项的 ls命令时,将以长格式显示文件或目录的详细信息,其中包括该文件的权限和归属等参数。
[[email protected] ~]# ls -l /etc/passwd                    //以长格式查看passwd文件
-rw-r--r--. 1 root root 2218 8月  21 23:27 /etc/passwd   //显示文件信息
  • 在上述输出信息中,第 34字段的数据分别表示该文件(或目录)的属主、属组,上例中/etc/passwd文件属于root用户、root组;而第 1 字段的数据表示该文件(或目录)的访问权限,如-rw-r--r--。权限字段由四部分组成,各自的含义如下:
字段 含义
第1字符 表示该文件的类型,d目录、c字符设备文件、 -普通文件、字母l链接文件等。
第2~4个字符 表示该文件的属主用户对该文件的访问权限。
第5~7个字符 表示该文件的属组内各成员用户对该文件的访问权限。
第8~10个字符 表示其他任何用户对该文件的访问权限。
第11个字符 这里的.SELinux 有关,目前不必关注。

权限的数字标识形式

chmod命令——设置文件或目录的权限

  • 命令格式

    chmod [ugoa] [+-=] [rwx] 文件或目录...

    chmod nnn 文件或目录...

  • [ugoa…][+-=][rwx]的形式中,三个组成部分的含义及用法如下:

    ugoa表示该权限设置所针对的用户类别。u代表文件属主,g代表文件属组内的用户, o代表其他任何用户, a代表所有用户(ugo 的总和)。

    +-=表示设置权限的操作动作。 +代表增加相应权限, -代表减少相应权限,=代表仅设置对应的权限。

    rwx是权限的字符组合形式,也可以拆分使用,如rrx

  • nnn为需要设置的具体权限值,如755644
[[email protected] opt]# ls -l siti.txt                    //以长格式查看siti.txt文件信息
-rw-r--r--. 1 root root 0 8月  22 01:19 siti.txt
[[email protected] opt]# chmod guo+x siti.txt              //设置文件所有用户可执行权限
[[email protected] opt]# ls -l siti.txt                    //以长格式查看siti.txt文件信息
-rwxr-xr-x. 1 root root 0 8月  22 01:19 siti.txt        //文件成功添加多有用户可只执行权限
[[email protected] opt]# chmod 666 siti.txt                //设置文件所有用户可读、可写权限
[[email protected] opt]# ls -l siti.txt                    //以长格式查看siti.txt文件信息
-rw-rw-rw-. 1 root root 0 8月  22 01:19 siti.txt         //文件成功设置权限

umask应用

  • umask 就是默认指定目前用户在新建文件或目录是的权限默认值。执行umask 022即可以设置当前用户的默认权限。直接执行umask命令就是查看当前系统的默认权限。需要注意的是,umask的分数指的是“该默认值需要减掉的权限”,如果执行umask 022代表 groupother被拿掉了权限2,也就是被拿掉了“写”权限。如果执行命令umask 000,代表文件的默认权限是777
[[email protected] opt]# umask 000
[[email protected] opt]# mkdir sisi
[[email protected] opt]# ls -ld sisi
drwxrwxrwx. 2 root root 6 8月  22 01:42 sisi
[[email protected] opt]# umask 022
[[email protected] opt]# mkdir sisi2
[[email protected] opt]# ls -ld sisi2
drwxr-xr-x. 2 root root 6 8月  22 01:44 sisi2

chown命令——设置目录和文件的归属

  • 命令格式

    chown 属主[:[属组]] 文件或目录...

  • 常用选项
选项 含义
-R 递归删除(同时删除宿主目录)
[[email protected] opt]# chown -R sun sisi2          //更改sisi2目录属主为sun
[[email protected] opt]# ls -ld sisi2                //以长格式友好查看sisi2目录信息
drwxr-xr-x. 2 sun root 6 8月  22 01:44 sisi2      //sisi2目录属主成功更改
[[email protected] opt]# chown -R :sun sisi2         //更改sisi2目录属组为sun
[[email protected] opt]# ls -ld sisi2                //以长格式友好查看sisi2目录信息
drwxr-xr-x. 2 sun sun 6 8月  22 01:44 sisi2       //sisi2目录属组成功更改
[[email protected] opt]# chown -R root:root sisi2    //更改sisi2目录属主、属组为root
[[email protected] opt]# ls -ld sisi2                //以长格式友好查看sisi2目录信息
drwxr-xr-x. 2 root root 6 8月  22 01:44 sisi2     //成功更改sisi2目录属主、属组信息

补充内容

  • 用户账号的初始配置文件

    添加新的用户账号后useradd命令会在用户的宿主目录中建立一些初始配置文件。这些文件来自于账号模板目录/etc/skel/,基本上都是隐藏文件,较常用的初始配置文件包括.bash_logout.bash_profile.bashrc。其中.bash_profile”文件中的命令将在该用户每次登录时被执行;; .bashrc文件中的命令会在每次加载/bin/Bash程序(当然也包括登录系统)时执行;而.bash_logout文件中的命令将在用户每次退出登录时执行。理解这些文件的作用,可以方便我们安排一些自动运行的后台管理任务。

    .bashrc等文件中,可以添加用户自己设置的可执行语句(如 Linux命令行、脚本控制语句等),以便自动完成相应的任务。如果希望为所有用户添加登录后自动运行的命令程序、自动设置变量等,可以直接修改/etc目录下的类似文件,如/etc/bashrc文件、/etc/profile文件。

原文地址:https://blog.51cto.com/14473285/2431591

时间: 2024-11-08 15:20:11

Linux账号权限管理的相关文章

Linux目录权限管理

权限介绍 在linux文件系统中,为系统中的文件(或目录)赋予了两个属性:访问权限和文件所有者,简称为"权限"和"归属".其中,访问权限包括读取.写入.可执行三种基本类型,归属包括属主(拥有改文件的用户账户).属组(拥有改文件的组账号). 使用带"-l"选项的ls命令时,将以长格式显示出文件或目录的详细信息,其中包括了该文件的权限和归属等参数. 第一个字符:表示该文件的类型,可以是d(目录).b(块设备文件).c(字符设备文件). "-

对Linux的权限管理的认识

Linux/GNU有一句广为流传的话就是"Linux的一切都是文件",系统的运行就是内核创建一系列进程来调用文件完成用户下达的任务.且Linux/GNU系统作为一个多用户多任务的操作系统,如何来管理各个用户及他们所创建的任务,就是一个软件工程,他的架构设计可以参考我们的社会结构,毕竟我们的社会先于软件工程发展了几千年,直到上世纪50年代后软件工程的硬件基础发展起来,它的依赖关系满足后自然就发展出来了(当然在软件系统中我们可以更少受一些不必要的社会规则的掣肘,更理想化).软件工程以所有用

linux的权限管理

linux的权限管理命令主要有chown,chgrp,chmod. linux权限 linux的权限有:r,w,x. 对于文件而言:r表示可读,即可以用cat等命令查看:w表示可写,可以编辑或者删除此文件:x,表示可执行,可以再命令提示符下提交给内核执行(linux创建文件默认是不具有执行权限的). 对于目录而言:r表示可对此目录执行ls列出 内部的所有文件:w表示可以在此目录创建文件:x,表示可以cd到此目录,并且使用ls -l列出详细信息(linux目录一般都有x). linux的特殊权限有

linux学习随笔——linux文件权限管理和网络配置

一.linux文件权限管理 查看某个文件的权限命令:ls -l linux文件权限有4种:读(r).写(w).执行(x)和无权限(-) 一般用10个字符表示其权限,按照(1-3-3-3)来分组划分 1位置 表示文件类型 "-"表示文件,"d"表示目录 2-4位 表示用户权限(u) 5-7位 表示组权限(g) 8-10  表示其他权限(o) 通常用chmod来修改权限:chmod     u+r 目标文件 也可以用数字来表示权限 r=4 w=2 x=1 chown命令

Linux文件权限管理

一.设置文件所属的用户以及所属的组(chown,chgrp) chgrp用来更改文件的组拥有者,其一般格式为: chgrp [option] group file (1)把文件test的组拥有者改为zfs: chgrp zfs test (2)把test及其子目录下的所有文件的组拥有者改为zfs: chgrp -R zfs test chown用来更改文件所有者与组拥有者,其一般格式为: chown [option] owner[:group] file (1)将test及其子目录下的所有文件的

Linux [拓展权限管理]

linux拥有3个特殊的拓展权限管理参数:   对文件影响 对目录影响 suid      以文件所有者的权限运行 Nothing sgid       以文件所属组的权限运行 目录中的文件继承目录的组 sticky Nothing 对于组有w权限的用户,只能在目录中创建或者修改自己拥有的文件(所属user为自己),但是不能修改或者删除其他用户的文件(虽然同组,并且组具有w权限) suid例子: /etc/password sgid, sticky例子: groupadd testgroup u

Linux基本命令—权限管理、文件搜索、帮助、压缩解压、网络通信

Linux基本命令-权限管理.文件搜索.帮助.压缩解压.网络通信 Linux 权限管理命令 文件搜索命令 帮助命令 压缩解压命令 网络通信指令 2017-11-12 权限管理命令 chmod 改变文件或目录权限: 格式:chmod [{ugo} {+-=} {rwx}] [文件或目录]:或 [mode=421] [文件或目录] -u:所有者: -g:所属组: -o:其他人 -rwx:可读可写可执行:对应权值 r-4.w-2.x-1,可按照数字改变权限:eg.rwxr-xr--表示754: eg.

linux学习—权限管理

用户.组和权限(一)--为了让每个用户具有较安全的管理机制,文件的权限管理是很重要的.Linux通常将文件的访问方式分为三个类别(owner/group/other),并且具有Read/Write/eXecute等的权限. 目录 用户 用户组 安全上下文 组的类别 passwd,shadow,group,gshadow文件 useradd,userdel,groupadd,groupdel命令 passwd,usermod,gpasswd,groupmod命令 groupmems,newgrp,

Linux的权限管理:实现资源的分派

Linux的权限管理:实现资源的分派 访问者分类 owner:所有者 group:所属组 other:其他人 每个文件都对访问者定义了一种权限 权限分类 对于文件来说 r:读权限 w:写权限 x:执行权限对于目录来说 r:可以查看目录中的文件列表 w:可以在目录中创建文件 x:可以进入该目录权限对应的数字表示方式 r:4 w:2 x:1 修改权限 chmod命令: 修改权限的三种方式: 数字格式 chmod 640 文件或目录 :对应的权限 rw-r----- 直接指明权限chmod (u,g,