Linux用户、组、权限管理

Linux用户与组管理

Linux系统上,用户通过内核拷贝程序到内存中,从此发起进程。进程以发起者的身份进行,进程对文件的访问权限,取决于发起进程的用户的权限。而有些后台进程或服务类进程以非管理员身份运行,为此也需要创建多个普通用户,此类用户不需登录。

系统中,用户类别分为管理员和普通用户(系统用户和登录用户),组类别分为基本组和附加组。管理系统上的用户与组主要通过以下四个文件来实现

  • /etc/passwd 用户的基本信息

  • /etc/shadow 用户密码

  • /etc/group 组的基本信息

  • /etc/gshadow 组密码

生成密码采用单向加密算法,并借助salt完成。分别用数字1-6来标识md5, sha1, sha225, sha256, sha384, sha512六种加密算法。对用户与组的管理一般涉及以下几类工作:用户/组的创建、修改、删除、切换、设置密码四个方面。

用户管理

创建用户 useradd

useradd [option] login-name
    -u 指定UID
    -g 指定基本的GID,但指定的组必须事先存在
    -G 指定用户所属的附加组,多个组之间用","隔开
    -c 指定注释信息comment
    -d /path/to/home-dir 指定用户家目录;通过复制/etc/skel目录并重命名实现;如果指定的及目录已经存在,不从skel文件夹中复制文件
    -s 指定用户默认shell,可用的所有可选shell存储在/etc/shells文件中
    -r 创建系统用户
    -m 强制创建用户主目录
    -M 不为用户创建主目录
    -f 用户非活动期 -1 永不过期
注意:创建用户时的诸多默认设定,配置文件为/etc/login.defs
        useradd -D 显示创建用户的配置信息
        useradd -D [options] 修改默认选项的值,修改的结果保存在/etc/default/useradd文件中

修改用户属性 usermod

usermod [option] login-name
    -u newUID 修改用户的UID为此处指定的UID
    -g 修改用户的GID,修改用户所属的基本组
    -G 修改用户所述的附加组。注意:此处修改只能覆盖原有附加组设置
    -a 与-G共同使用,为用户添加附加组
    -c 修改用户的注释信息
    -d /path/to/new-home-dir 修改用户的家目录,用户原有的文件不会被转移至新目录
    -m 只能与-d一同使用,将原有的家目录转移为新的家目录;
    -l 修改用户的登录名
    -s 修改用户的默认shell
    -L 锁定用户的账号,禁止用户登录;即在用户原来的面字符之前添加一个“!”
    -U 解锁用户的账号

设置密码信息 passwd

passwd [option] [login-name]    命令后不指明login-name时,用户可为自己的账号修改密码信息
    passwd login-name 只有root能修改其他用户的密码信息
        -l/-u 锁定/解锁用户账户
        -d 清除用户密码
        -e date 指明用户账户过期明确的日期
        -n days 密码最小使用期限
        -x days 密码最长使用期限
        -i days 非活动期限
        -w days 警告期限
        --stdin 从标准输入读取密码

切换用户 su

登录式切换:会通过重新读取用户的配置文件来重新初始化
    su - username
    su -l username  
非登录式切换:
    su username
        注意:管理员可以无密码切换至其他任何用户
        su - username -c "COMMAND" 以某用户的身份运行“COMMAND”

显示用户有效ID

id [option] [user]
    -u 仅显示UID
    -g 仅显示用户基本组ID
    -G 仅显示用户所属的所有组ID
    -n 显示用户的名称而非ID

删除用户 userdel

userdel [option] login-name
    -r 删除用户时一并删除其家目录

组管理

创建新组 groupadd

groupadd [option] group-name
    -g GID 指定GID;默认为上一个GID+1
    -r 创建系统组

修改组属性 groupmod

groupmod [option] group-name
    -g GID修改组ID
    -u new-group-name 修改组名

修改组密码 gpasswd

gpasswd [option] group
    -a username 向组中添加用户
    -d username 从组中移除用户
    -r 删除指定组的组密码

组切换 newgrp

newgrp [-] [group-name]   如果命令后不跟group-name,则用户切换回/etc/passwd文件中记录的默认组
    - 会模拟用户以新组重新登录,以实现重新初始化工作环境

删除组 groupdel

groupdel [option] group-name

权限管理

Linux文件中的权限有9位字符,通过ls命令的-l选项可以查看。

[root@localhost ~]# ls -l .
total 8
-rw-------. 1 root root 1624 Nov 13 08:29 anaconda-ks.cfg
-rw-------. 1 root root 1672 Nov 13 00:36 initial-setup-ks.cfg
  • 左三位是文件属主的权限,中三位是文件属组的权限,右三位是其他用户对该文件的权限。

  • 每类用户的权限共有8种组合“—, –x, -w-, r–, -wx, r-x, rw-, rwx”,r:可读取文件的内容,w:可以修改文件的数据,x:可将文件运行为进程。8种组合表示为数字分别为:0,1,2,3,4,5,6,7。

Linux中进程对文件的访问权限遵从以下模型:1 如果进程的属主与文件的属主一致,则应用属主对该文件的权限;2 如果属主不一致,如果进程的属主属于用户的属组,则应用该文件的属组对该文件的权限;3 如果进程的属主以上两条都不满足,则应用other权限。

Linux中权限的管理主要涉及两个方面:设定文件的属主、属组;设定文件属主、属组以及其他用户分别所具有的权限。

设置文件属主、属组以及其他用户的权限 chmod

chmod [option] mode[,mode]... fiel...
    mode表示法:
        赋权表示法:直接操作一类用户的所有权限位rwx;
            u/g/o/a=
        授权表示法:直接操作一类用户的一些权限位r,w,x;
            u+, u-
            g+, g-
            o+, o-
            a+, a-
    --reference=/path/to/reference 以reference文件的权限作为参考标准
    -R 递归修改

修改文件的从属关系 chown

chown [option]... [owener][:group] file
    --reference=/path/to/reference 以reference文件的属主属作为参考标准修改之
    -R 递归修改

文件的权限反向掩码,遮罩码 umask

新建文件:其权限为666-umask;新建目录:其权限为777-umask。Linux中新建文件默认不能拥有执行权限,如果(666-umask)结果中有执行权限,则自动为其加一。

umask 查看当前命令
umask MASK 设置umask,只对当前shell进程有效

原创文章,作者:N24_fynl,如若转载,请注明出处:http://www.178linux.com/62961

赞 (0)
N24_fynlN24_fynl
上一篇 2016-12-07 20:36
下一篇 2016-12-07 20:42

相关推荐

  • 网络接口Bonding以及网络组

    网络接口Bonding就是将多块网卡绑定同一IP地址对外提供服务,可以实现高可用或者负载均衡。当然,直接给两块网卡设置同一IP地址是不可能的。通过bonding,虚拟一块网卡对外提供连接,物理网卡的被修改为相同的MAC地址。 网络组 :网络组:是将多个网卡聚合在一起方法,从而实现冗错和提高吞吐量。网络组不同于旧版中bonding技术,提供更好的性能…

    Linux干货 2016-11-23
  • N28-第三周作业

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。
    2、取出最后登录到当前系统的用户的相关信息。
    3、取出当前系统上被用户当作其默认shell的最多的那个shell。
    4、将/etc/passwd中的第三个字段数值最大的后10个用户的信息全部改为大写后保存至/tmp/maxusers.txt文件中。
    5、取出当前主机的IP地址,提示:对ifconfig命令的结果进行切分。
    6、列出/etc目录下所有以.conf结尾的文件的文件名,并将其名字转换为大写后保存至/tmp/etc.conf文件中。
    7、显示/var目录下一级子目录或文件的总个数。
    8、取出/etc/group文件中第三个字段数值最小的10个组的名字。
    9、将/etc/fstab和/etc/issue文件的内容合并为同一个内容后保存至/tmp/etc.test文件中。
    10、请总结描述用户和组管理类命令的使用方法并完成以下练习:
    (1)、创建组distro,其GID为2016;
    (2)、创建用户mandriva, 其ID号为1005;基本组为distro;
    (3)、创建用户mageia,其ID号为1100,家目录为/home/linux;
    (4)、给用户mageia添加密码,密码为mageedu;
    (5)、删除mandriva,但保留其家目录;
    (6)、创建用户slackware,其ID号为2002,基本组为distro,附加组peguin;
    (7)、修改slackware的默认shell为/bin/tcsh;
    (8)、为用户slackware新增附加组admins;

    2017-12-17
  • 磁盘管理、文件管理、系统管理

    分区管理工具:fdisk,parted,sfdisk fdisk:MBR模式,对于一块硬盘来说,最多只能管理15个分区; # fdisk -l [-u] [device…]:查看 # fdisk device 子命令:管理功能 p:显示已有分区 n:新建分区 d:删除 w:写入磁盘并退出 q:放弃更改并退出 m:获取帮助 l:列出分区id t:调…

    Linux干货 2017-12-15
  • 系统管理中的三大利刃(htop glances dstat)

    工欲善事情,必先利其器,生产环境中的服务器在处理请求并生成回应数据的时间主要消耗在服务器端,包括了众多的环节,如何全面了解我们linux服务器的CPU使用率、使用时间、内存占用比例、磁盘IO数据、网络相关数据等等众多指标,保证我们的linux服务器顺利完成每一个请求,怎能没有几个趁手的利刃,而今天就让我们见识一下系统管理中三大利刃。 相传一把三尺长的软剑,叫…

    Linux干货 2015-11-18
  • 初来乍到

    坐上了去往北方的火车,我不知道自己为什么会颤抖,也许是耳朵里那首汪峰的《北京,北京》震撼到了我,接着满脑子便是灯红酒绿的大街道和浮华的高楼大厦,我幻想着有一天能在这样的大城市中闯出一片天。梦醒了 ! 30个小时的路程确实是让我满脑子都是未来的自己。 对于我这个从来没有见过世面的人来说,第一次来到北京这座一线大城市,内心充满着无比的欣喜和激动,但更多的还是那份…

    Linux干货 2018-03-26
  • scp命令介绍

    scp是secure copy的简写,用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加密的。可能会稍微影响一下速度。当你服务器硬盘变为只读 read only system时,用scp可以帮你把文件移出来。另外,scp还非常不占资源,不会提高多少…

    Linux干货 2017-07-24

评论列表(1条)

  • 马哥教育
    马哥教育 2016-12-14 15:02

    基础命令总结的得非常好,希望你能牢记这些基础知识。加油!