• Linux用户和权限之一


    作者: 姚远 Oracle ACE
    请点击此处查看本文章视频

    用户说明

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

    用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问;另一方面也可以帮助用户组织文件,并为用户提供安全性保护。

    每个用户账号都拥有一个唯一的用户名和各自的口令。用户在登录时键入正确的用户名和口令后,就能够进入系统和自己的主目录。

    Linux用户分总共分为三种,分别如下:

    root用户 (ID 0)

    系统用户 (ID 1-499)

    普通用户 (ID 500以上)

    每个用户拥有一个UserID,操作系统实际读取的是UID,而非用户名;每个用户属于一个主组,属于一个或多个附属组,一个用户最多有31个附属组;每个组拥有一个GroupID;每个进程以一个用户身份运行,该用户可对进程拥有资源控制权限;每个可登录用户拥有一个指定的Shell环境,/sbin/nologin和/bin/false不能登录。

    相关配置文件如下:

    /etc/passwd 保存用户信息

    /etc/shadow 保存用户密码(以加密形式保存)

    /etc/group 保存组信息

    /etc/login.defs 用户属性限制,密码过期时间,密码最大长度等限制

    /etc/default/useradd 显示或更改默认的useradd配置文件

    用户管理

    用户管理(useradd、userdel、passwd、usermod)

    useradd

    添加用户账号就是在系统中创建一个新账号,然后为新账号分配用户号、用户组、主目录和登录Shell等资源。刚添加的账号是被锁定的,无法使用。

    用法:useradd 选项 用户名

    查询帮助

    useradd --help
    增加一个用户张三(zhangsan)

    
    $ useradd -D   # 增加用户的默认配置
    GROUP=100
    HOME=/home
    INACTIVE=-1
    EXPIRE=
    SHELL=/bin/bash
    SKEL=/etc/skel
    CREATE_MAIL_SPOOL=yes
    
    root@yaoyuan ~# useradd zhangsan
    root@yaoyuan ~# echo yaoyuan |passwd --stdin zhangsan
    Changing password for user zhangsan.
    passwd: all authentication tokens updated successfully.
    root@yaoyuan ~# id zhangsan
    uid=54322(zhangsan) gid=54331(zhangsan) groups=54331(zhangsan)
    root@yaoyuan ~# su - zhangsan
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    passwd

    指定和修改用户口令的Shell命令是passwd。超级用户可以为自己和其他用户指定口令,普通用户只能用它修改自己的口令。命令的格式为:

    passwd 选项 用户名

    passwd --help
    可使用的选项:

    • -l 锁定口令,即禁用账号。

    • -u 口令解锁。

    • -d 使账号无口令。

    • -e 强迫用户下次登录时修改口令。

    如果默认用户名,则修改当前用户的口令。

    usermod

    修改用户配置,-g 是主组,-G是辅助组。

    zhangsan@yaoyuan ~$ ll /media/
    total 4
    drwxrwx---. 1 root vboxsf 4096 Mar 18 16:00 sf_oracle
    zhangsan@yaoyuan ~$ ll /media/sf_oracle/
    ls: cannot open directory /media/sf_oracle/: Permission denied
    
    root@yaoyuan ~# usermod -a -G  vboxsf zhangsan
    
    zhangsan@yaoyuan ~$ exit
    exit
    oracle@yaoyuan ~$ su zhangsan
    zhangsan@yaoyuan oracle$ ll /media/sf_oracle/
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    -a是增加,如果没有-a,原来的辅助组都删除了。

    增加oracle用户的vboxusers组

    
    # usermod -a -G  vboxusers oracle
    # id oracle
    uid=54321(oracle) gid=54321(oinstall) groups=54321(oinstall),982(vboxusers)
    [root@databace linux]# id oracle
    uid=54321(oracle) gid=54321(oinstall) groups=54321(oinstall),54323(oper),54324(backupdba),54325(dgdba),54326(kmdba),54330(racdba),54327(asmdba),982(vboxusers)
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    这种增加辅助组的方法在给用户赋权中很好用,例如oracle用户的组是oinstall,而yaoyuan用户不属于这个组就不能进入/home/oracle目录,但给yaoyuan用户增加一个辅助组就可以了:

    $ ll -ld /home/oracle
    drwxrwx---. 29 oracle oinstall 4096 Jul  7 11:02 /home/oracle
    $ ll /home/oracle
    ls: cannot open directory /home/oracle: Permission denied
    $ sudo usermod -a -G oinstall yaoyuan
    
    • 1
    • 2
    • 3
    • 4
    • 5

    重新登录oracle后就可以了。一个用户最多有31个附属组

    userdel

    userdel删除用户

    组管理

    通过命令groupadd、groupdel、groupmod来对组进行管理。

    作者介绍:

    姚远:Oracle ACE(Oracle和MySQL数据库方向),华为云MVP。拥有包括 Oracle 10g和12c OCM在内的20+数据库相关认证。曾任IBM公司数据库部门经理,现在一家第三方公司任首席数据库专家,服务2万+客户,《MySQL 8.0运维与优化》的作者。

    需要全套《Linux系统管理》pdf文档请加姚远老师微信👇

  • 相关阅读:
    MATLAB | 绘图复刻(三) | 分层聚类分析图:树状图+热图
    Idea上传gitee注意事项,push reject错误
    深入浅出 OkHttp 源码解析及应用实践
    c++中利用指针或应用如何安全的获取数据
    numpy常用乘法函数总结:np.dot()、np.multiply()、*、np.matmul()、@、np.prod()、np.outer()
    Python:自动化处理PDF文档集合,提取文献标题、合并文献PDF并生成目录和页码
    linux脚本笔记
    ptmalloc源码分析 - malloc/free函数的实战篇(12)
    数据结构相关知识点(一)
    美格智能,从5G智能模组到车规级C-V2X|金球奖入围公示
  • 原文地址:https://blog.csdn.net/weixin_43424368/article/details/126668227