zoukankan      html  css  js  c++  java
  • Linux用户和组管理

    摘自:http://www.apelearn.com/bbs/forum.php?mod=viewthread&tid=7595&extra=page%3D1%26filter%3Dtypeid%26typeid%3D36

    1. /etc/passwd
    由 : 分隔成7个字段
    (1) 用户名 规则:大小写字母、数字、减号(不能出现在首位)、点以及下划线,其他字符不合法
    (2) x 放密码,安全起见放到 /etc/shadow
    (3) uid (0-4294967294=2^32-2) root uid=0 1-499系统保留 普通账户是从500开始
    (4) gid 对应 /etc/group
    (5) 注释说明,该字段没有实际意义,通常记录该用户的一些属性,例如姓名、电话、地址等等 用 chfn 更改
    (6) 用户家目录
    (7) shell /bin/bash, /bin/false, /sbin/nologin


    2. /etc/shadow
    使用 : 分隔9个字段
    (1) 用户名
    (2) 密码,用SHA-512加密过,不可逆
    (3)上次更改密码的日期,例如上次更改密码的日期为2012年1月1日,则这个值就是 ‘365 x (2012-1970) + 10 + 1= 15341’.
    (4)要过多少天才可以更改密码, 0 不限制
    (5)密码多少天后到期,默认是99999,可以理解为永远不需要改
    (6)密码到期前的警告期限
    (7)账号失效期限,到期后过多少天锁定帐号
    (8)账号的生命周期
    (9)作为保留用的,没有什么意义


    3. 新增/删除用户和组
    useradd:
    -c comment 指定一段注释性描述。
    -d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。
    -g 用户组 指定用户所属的用户组。
    -G 用户组,用户组 指定用户所属的附加组。
    -s Shell文件 指定用户的登录Shell。
    -u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。
    用户名 指定新账号的登录名。

    userdel:
    不带选项使用 userdel,只会删除用户。用户的家目录将仍会在/home目录下。
    -r 选项,可以删除用户时完全删除家目录,同样会删除用户的邮件池,如果存在的话。
    -f 选项来强制删除用户,当用户已经登入 Linux 系统时此选项仍旧生效。

    groupadd :
    -g:指定新建工作组的id;
    -r:创建系统工作组,系统工作组的组ID小于500;
    -K:覆盖配置文件“/ect/login.defs”;
    -o:允许添加组ID号不唯一的工作组。
    组名:指定新建工作组的组名

    groupdel:
    如果组内有用户,不能删除

    usermod:
    -a 把用户追加到某些组中,仅与-G选项一起使用
    -c 修改/etc/passwd文件第五段comment
    -d 修改用户的家目录通常和-m选项一起使用
    -e 指定用户帐号禁用的日期,格式YY-MM-DD
    -f 用户密码过期多少天后采用就禁用该帐号,0表示密码已过期就禁用帐号,-1表示禁用此功能,默认值是-1
    -g 修改用户的gid,改组一定存在
    -G 把用户追加到某些组中,仅与-a选项一起使用
    -l 修改用户的登录名称
    -L 锁定用户的密码
    -m 修改用户的家目录通常和-d选项一起使用
    -s 修改用户的shell
    -u 修改用户的uid,该uid必须唯一
    -U 解锁用户的密码

    4. 创建、修改用户密码
    passwd
    创建密码的规则:长度大于10;含大小写字母数字以及特殊字符 ;不规则性;不要带有自己名字、公司名字、自己电话、自己生日等。
    mkpasswd 生成密码的工具,安装 expect包


    5. 用户身份切换
    su - 用来初始化环境变量 $PATH $HOME等
    sudo su到root需要输入root的密码不安全
    visudo 编辑/etc/sudoers 配置文件 没有命令需安装 yum install -y sudo
    格式: user host=(as_user) commands
    比如: aming ALL=(root) /bin/ls //它的意思是,让aming这个普通用户,拥有root的权限,针对ls这个命令。

    应用:只允许使用普通账户登陆,而普通账户登录后,可以不输入密码就能sudo切换到root账户 (root不允许远程登录)
    User_Alias USER_SU = test, test1, aming //做用户的别名,可以写多个用户
    Cmnd_Alias SU = /bin/su //做命令的别名,可以写多个命令
    USER_SU ALL=(ALL) NOPASSWD: SU //其中NOPASSWD的意思是,普通用户使用sudo的时候,不需要输入自己的密码。

    When you are lost, follow your heart
  • 相关阅读:
    五大Java开源论坛
    mysql limit,offset 区别
    查询某个字段存在于哪几个表
    C++分享笔记:5X5单词字谜游戏设计
    Linux分享笔记:系统状态检测命令小结
    Linux分享笔记:查看帮助命令 & 常用系统工作命令
    数据结构(C语言)分享笔记:数据结构的逻辑层次、存储层次
    Linux分享笔记:shell终端的介绍
    Java开发学生管理系统
    JAVA使用JDBC连接,修改MySQL数据库(比较乱)
  • 原文地址:https://www.cnblogs.com/andreking/p/5785934.html
Copyright © 2011-2022 走看看