博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Linux基础知识--用户账户管理
阅读量:6830 次
发布时间:2019-06-26

本文共 5947 字,大约阅读时间需要 19 分钟。

创建用户账户

  用户和组账户概述:

    用户账户:

      超级用户(root)

      普通用户

      程序用户

    组账户

      基本组(私有组)

      附加组(公共组)

    标识:

      UID(用户标识号)

      GID(组标识号)

  

  passwd用户账号文件

    用于保存用户账户的基本信息

      文件位置:/etc/passwd

      每一行对应一个用户的账号信息

[root@localhost ~]# head /etc/passwdroot:x:0:0:root:/root:/bin/bashbin:x:1:1:bin:/bin:/sbin/nologindaemon:x:2:2:daemon:/sbin:/sbin/nologinadm:x:3:4:adm:/var/adm:/sbin/nologinlp:x:4:7:lp:/var/spool/lpd:/sbin/nologinsync:x:5:0:sync:/sbin:/bin/syncshutdown:x:6:0:shutdown:/sbin:/sbin/shutdownhalt:x:7:0:halt:/sbin:/sbin/haltmail:x:8:12:mail:/var/spool/mail:/sbin/nologinnews:x:9:13:news:/etc/news:

      每一行对应一个用户的账号信息,每个字段对应的分别是:用户账号名称、密码占位符、用户id、组id、用户全名、宿主目录(家目录)、用户登录的shell信息

 

  shadow存放用户密码信息

    文件位置:/ect/shadow

[root@localhost ~]# head /etc/shadowroot:$1$Zn5laWHN$xBRPz7vfHOZKAwrd/IRdS/:17919:0:99999:7:::bin:*:17919:0:99999:7:::daemon:*:17919:0:99999:7:::adm:*:17919:0:99999:7:::lp:*:17919:0:99999:7:::sync:*:17919:0:99999:7:::shutdown:*:17919:0:99999:7:::halt:*:17919:0:99999:7:::mail:*:17919:0:99999:7:::news:*:17919:0:99999:7:::

    每一行对应一个用户的密码信息,每个字段分别为:用户账号名称、加密后的密码字串信息、上次修改的时间、密码最短的有效天数默认为0、密码最长的有效天数默认为99999、提前多少天警告用户密码快过期默认为7、在密码过期后多少天禁用此用户、账号失效时间默认为空、保留字段(未使用)

   

  useradd添加用户

  格式:useradd [选项]... 用户名

  -u指定UID标记号

  -d指定宿主目录,缺省为/home/用户名

  -e指定账号失效时间

  -g指定UID

  -G指定GID

  -M不为用户创建并初始化宿主目录

  -s指定用户的登录Shell

[root@localhost ~]# useradd user01
[root@localhost ~]# tail /etc/passwdsshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologinpcap:x:77:77::/var/arpwatch:/sbin/nologinntp:x:38:38::/etc/ntp:/sbin/nologinhaldaemon:x:68:68:HAL daemon:/:/sbin/nologinapache:x:48:48:Apache:/var/www:/sbin/nologinxfs:x:43:43:X Font Server:/etc/X11/fs:/sbin/nologingdm:x:42:42::/var/gdm:/sbin/nologinsabayon:x:86:86:Sabayon user:/home/sabayon:/sbin/nologinoracle:x:500:500::/home/oracle:/bin/bashuser01:x:501:502::/home/user01:/bin/bash

  Linux中把500以内(不包含500)都留给了系统

[root@localhost ~]# cd /home[root@localhost home]# lsaudispd.conf  file1.tar.gz  file3         test   test2         user01file1.tar     file2.tar.gz  file3.tar.gz  test1  test.tar.bz2

  可以看到,创建用户时并未指定用户的宿主目录,默认在/home下的user01目录

  用户账号创建之后有一些初始的配置文件,这些文件是从/ect/skel中复制过来的

[root@localhost home]# ls -a /home/user01.  ..  .bash_logout  .bash_profile  .bashrc  .emacs  .mozilla  .zshrc

  这些文件是用户的一些信息,这些文件中,~.bash_profile是用户每次登录时执行;~.bashrc是每次进入新的bash环境中执行;~.bash_logout是每次退出登录时执行

  如果某一天我们不小心把这些文件给删除了,那么我们还可以以user01用户登录,然后从/ect/skel中复制这些文件到用户的宿主目录

  以上说的是用户的个人配置信息,当然还有全局的配置信息,在/ect/bashrc和/etc/profile中

 

  passwd设置或者更改用户的密码

  格式:passwd [选项]... 用户名

  -d清空用户密码,无需密码即可登录

  -l锁定用户账户

  -S查看用户是否被锁定

  -u解锁用户账户

[root@localhost home]# passwd user01Changing password for user user01.New UNIX password:BAD PASSWORD: it is too simplistic/systematicRetype new UNIX password:passwd: all authentication tokens updated successfully.

  以上代码给用户user01设定了密码,当密码太过简单会给出相应提示,不需理会。普通用户只能给自己重置密码切不能太简单,而且只能passwd后面不加任何内容

  用root用户锁定user01,注意如果在锁定之前已经登录了,user01不受影响,只是在重新登录的时候会被拒绝登录

[root@localhost home]# passwd -l user01Locking password for user user01.passwd: Success

  再登录user01,会发现登录不上

login as: user01user01@192.168.29.128's password:Access denied

  查看user01的状态,发现是锁定的状态

[root@localhost home]# passwd -S user01user01 LK 2019-02-13 0 99999 7 -1 (Password locked.)

  解锁user01,即可重新登录user01  

[root@localhost home]# passwd -u user01Unlocking password for user user01.passwd: Success.

  

  usermod修改用户账号属性

  格式:usermod [选项]... 用户名

  -l更改用户账户的登录名

  -L锁定用户

  -U解锁用户

  -u、-d、-g、-G、-e、-s与useradd相同

  

  userdel删除用户账户

  格式:userdel [-r] 用户名

  -r表示将用户的宿主目录一起删除

 

  组账户:

  /etc/group保存组账号基本信息,/ect/gshadow保存组账号的密码信息

  groupadd添加组账号,一般的我们创建一个用户时默认给用户创建了一个和用户id相同的组id

  格式:groupadd [-g GID] 组账户名

[root@localhost home]# groupadd gruop01[root@localhost home]# tail /etc/groupstapdev:x:101:stapusr:x:102:xfs:x:43:gdm:x:42:sabayon:x:86:screen:x:84:oinstall:x:500:dba:x:501:oracleuser01:x:502:gruop01:x:503:

  gpasswd设置组账户密码(极少用),增加删除组成员

  格式:gpasswd [选项]... 用户名 组账户名

  -a添加一个用户

  -d删除一个用户

  -M是向用户组中添加多个用户,用逗号隔开

[root@localhost home]# gpasswd -a user01 gruop01Adding user user01 to group gruop01[root@localhost home]# tail -5 /etc/groupscreen:x:84:oinstall:x:500:dba:x:501:oracleuser01:x:502:gruop01:x:503:user01

  可以看到用户user01被添加到gruop01这个用户组中了。user01的基本组是502,附加组是503

[root@localhost home]# gpasswd -d user01 gruop01Removing user user01 from group gruop01

  可以看到user01从gruop01中删除了

 

  groupdel删除组账号

  格式:groupdel 组账号名

[root@localhost home]# groupdel gruop01[root@localhost home]# tail -5 /etc/groupsabayon:x:86:screen:x:84:oinstall:x:500:dba:x:501:oracleuser01:x:502:

  可以看到用户组gruop01被删除了

  

  用户和组账号查询

  id查询用户身份标识

  格式: id [用户名]

[root@localhost home]# id rootuid=0(root) gid=0(root) groups=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel)

  groups查询用户所属的组

  格式:groups [用户名]

[root@localhost home]# groups rootroot : root bin daemon sys adm disk wheel

  finger查询用户账号的详细信息

  格式:finger [-l] 用户名

[root@localhost home]# finger -l rootLogin: root                             Name: rootDirectory: /root                        Shell: /bin/bashOn since Thu Feb 14 04:37 (CST) on tty1    1 hour 17 minutes idleOn since Thu Feb 14 04:51 (CST) on pts/0 from 192.168.29.1New mail received Thu Feb 14 05:41 2019 (CST)     Unread since Fri Jan 25 04:02 2019 (CST)No Plan.

  users、w、who查询已登录到主机的用户信息

[root@localhost home]# usersroot root[root@localhost home]# w 06:09:25 up  1:33,  2 users,  load average: 0.00, 0.00, 0.01USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHATroot     tty1     -                04:37    1:18m  0.00s  0.00s -bashroot     pts/0    192.168.29.1     04:51    0.00s  0.05s  0.00s w[root@localhost home]# whoroot     tty1         2019-02-14 04:37root     pts/0        2019-02-14 04:51 (192.168.29.1)

 

  总结:/etc/passwd、/etc/shadow存放用户的账户信息和密码信息

     useradd、userdel、passwd

     /etc/group、/etc/gshadow存放用户组的信息和密码

     groupadd、gpasswd、groupdel

     id、groups、finger、users、w、who

     /etc/skel

  

转载于:https://www.cnblogs.com/bigbigtong/p/10325680.html

你可能感兴趣的文章
opps kio
查看>>
SQL截取字符串函数
查看>>
性能测试工具Locust
查看>>
The POM for XXX:jar:${com.ld.base.service.version} is missing, no dependency information available
查看>>
线程管理:守护线程的创建和运行
查看>>
UML从需求到实现---类图(1)
查看>>
iOS时间问题
查看>>
MikroTik RB750r2/RB750gr3 操作记录
查看>>
Atitit webservice的发现机制 discover机制
查看>>
最详细的Log4j使用教程
查看>>
数组去重--这几种方法够不?
查看>>
Android学习路线总结,绝对干货
查看>>
[转]【无私分享:ASP.NET CORE 项目实战(第十四章)】图形验证码的实现
查看>>
欧几里得空间
查看>>
绿豆沙色
查看>>
Windows和linux虚拟机之间联网实现SSH远程连接以及VMware的3种网络模式[NAT、桥接和Host-only]...
查看>>
关于高可用的系统
查看>>
systemtap-note-6-userspace-stack-backtrace
查看>>
netty支持的各种socketchannel实现及比较
查看>>
配置文件操作(获取路径、及取得相应数据)
查看>>