笔记-linux系统用户与组

前言

为什么创建用户和组

用户和组的分类

用户和组主要配置文件

用户管理

组管理




前言

资源分派的3A认证

Authentication:认证   确认身份

Authorization:授权    给什么样的权限

Accouting|Audition:审计  记录行为





为什么创建用户和组


用户

在linux系统中认证是用用户来验证。

用户名+口令=令牌 有了不同等级的令牌就可以出入不同的关卡。

在系统中每一个用户都有自己的一个id号·这个id号是系统用来标识用户的主要凭证

组group

基于某种特定联系将多个用户集合在一起,即构成一个用户组

组可以方便几个用户使用同样的权限,方便了管理多个用户

在linux系统中创建用户的时候就默认创建同名的用户的组

而在windows中是不允许的!

当访问一个文件是否能够访问权限是通过用户来决定的




用户和组的分类


用户分类: 

管理员用户:root

UID :0

系统用户:1-499(centos6),1-999(cetnos7) 对守护进程获取资源进行权限分配

普通用户:501-65535(cetnos6),1000-65535(centos7) 交互式登录

组的分类:

主组(也叫基本组):创建用户在没有添加任何参数的时候自动创建同名主组,用户只能属于或者只能有一个主组

辅助组:用户除了在主组之外的其他组叫做附属组,一个用户可以属于零个或多个辅助组

组也有相对应的标识id号 Gid

默认管理员root组:root

GID  :0

系统用户组:1-499(centos6),1-999(cetnos7)

普通用户组:501-65535(cetnos6),1000-65535(centos7)




用户和组主要配置文件


1.用户属性文件

/etc/passwd

是一个文本文件,包含了用户名及其一系列的用户属性(包括用户UID,GID,描述信息等)

[[email protected] testdir]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
gopher:x:13:30:gopher:/var/gopher:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
usbmuxd:x:113:113:usbmuxd user:/:/sbin/nologin
rpc:x:32:32:Rpcbind Daemon:/var/cache/rpcbind:/sbin/nologin
rtkit:x:499:499:RealtimeKit:/proc:/sbin/nologin
#以上是文件部分内容
#下面对用户属性文件格式做一个了解
root:x:0:0:root:/root:/bin/bash
root          #用户名
:x           #用户密码(由于一些安全因素,此处不记录密码)
:0           #用户UID
:0           #用户GID
:root          #用户的一些描述信息(空就表示没有)
:/root          #用户家目录
:/bin/bash          #用户登录shell

2.用户密码文件

/etc/shadow

用户存放密码及其其他属性的的文本文件

#以下是用户密码属性文件部分内容
[[email protected] testdir]# cat /etc/shadow
root:$6$bkV/N8gpLVgw66mE$GCRmhYK3r75F/OFuN4.kiSvIcsXkddGbZWJykdPIh5H32aZwGgsLW7I030JAkCC.GTn8CAopetseb90TEAMbp/:17007:0:99999:7:::
bin:*:15980:0:99999:7:::
daemon:*:15980:0:99999:7:::
adm:*:15980:0:99999:7:::
lp:*:15980:0:99999:7:::
sync:*:15980:0:99999:7:::
shutdown:*:15980:0:99999:7:::
halt:*:15980:0:99999:7:::
mail:*:15980:0:99999:7:::
uucp:*:15980:0:99999:7:::
operator:*:15980:0:99999:7:::
games:*:15980:0:99999:7:::
gopher:*:15980:0:99999:7:::
ftp:*:15980:0:99999:7:::
nobody:*:15980:0:99999:7:::
dbus:!!:17007::::::
usbmuxd:!!:17007::::::
rpc:!!:17007:0:99999:7:::
rtkit:!!:17007::::::
liaoxz:!!:17008:0:99999:7:::
liaoxz     用户名
!!       密码(用户没有设置密码是禁止登录的所以是两个!!)
:17008     从1970.1.1起到密码最近一次更改时间
:0       密码再过几天可以被更改
:99999     密码有效期
:7       密码过期前几天提醒(默认一周)
::       密码过期几天后被锁定
::       账户有效期(从1970.1.1算起多少天后失效)

3.组属性文件

/etc/group

组的相关属性(包括组名,gid等)

cat /etc/passwd
root:x:0:liaoxz
root          组名
:x          组密码(因为安全因素这里不设定密码)
:0          组id(组的标识号码)
:liaoxz          以当前组作为附加组的用户列表

4.组密码文件

/etc/gshadow

存储组密码的相关属性(包括组的密码,管理员等)

[[email protected] mail]# cat /etc/gshadow
bin:::bin,daemon
bin            群组名  
::            群组密码(空为没有)
::            组管理员列表(空为没有)
bin,daemon            以当前组作为附加组的用户列表

5.其它文件操作命令

#直接打开用户属性文件命令
[[email protected] ~]# vipw
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync

#直接打开组属性文件命令
[[email protected] ~]# vigr
root:x:0:
bin:x:1:
daemon:x:2:
sys:x:3:
adm:x:4:
tty:x:5:
disk:x:6:
lp:x:7:
mem:x:8:
kmem:x:9:
wheel:x:10:liaoxz
cdrom:x:11:
mail:x:12:postfix

#检查用户密码文件的完整性命令
#语法
pwck [options] [passwd [ shadow ]]
#主要选项
-q:只显示错误信息,警告不显示
-s:按id排序
-r:只读方式检查
[[email protected] ~]# pwck
user ‘ftp‘: directory ‘/var/ftp‘ does not exist
user ‘avahi-autoipd‘: directory ‘/var/lib/avahi-autoipd‘ does not exist
user ‘saslauth‘: directory ‘/run/saslauthd‘ does not exist
user ‘pulse‘: directory ‘/var/run/pulse‘ does not exist
pwck: no changes

#检查用户组及密码文件的完整性
#语法
grpck [options] [passwd [ shadow ]]
#主要选项
-q:只显示错误信息,警告不显示;
-s:按id排序;
-r:只读方式检查。
[[email protected] ~]# grpck



用户管理

查看用户id

命令1

#语法
id [OPTION]... [USERNAME]
#选项
-g或--group      显示用户所属群组的ID;
-G或--groups       显示用户所属附加群组的ID; 
-n或--name       显示用户,所属群组或附加群组的名称; 
-r或--real       显示实际ID; 
-u或--user       显示用户ID; 
-help          显示帮助; 
-version         显示版本信息。
#实例
[[email protected] ~]# id root
uid=0(root) gid=0(root) groups=0(root)

用户创建

命令2

#语法
 useradd [options] LOGIN
[[email protected] mail]# useradd test
[[email protected] mail]#
#主要选项
  -c:加上备注文字,备注文字保存在passwd的备注栏中;
  -d:指定用户登入时的主目录,替换系统默认值/home/<用户名>;
  -D:变更预设值;
  -e:指定账号的失效日期,日期格式为MM/DD/YY,例如06/30/12。缺省表示永久有效;
  -f:指定在密码过期后多少天即关闭该账号。如果为0账号立即被停用;如果为-1则账号一直可用。
  默认值为-1;
  -g:指定用户所属的群组。值可以使组名也可以是GID。用户组必须已经存在的,期默认值为100,
  即users;
  -G:指定用户所属的附加群组;
  -m:自动建立用户的登入目录;
  -M:不要自动建立用户的登入目录;
  -n:取消建立以用户名称为名的群组;
  -r:建立系统账号;
  -s:指定用户登入后所使用的shell。默认值为/bin/bash;
  -u:指定用户ID号。该值在系统中必须是唯一的。0~499默认是保留给系统用户账号使用的,所以该
    值必须大于499;
  #实例
  
  [[email protected] testdir]# useradd –g natasha –G work1 liaoxz
   #  -g 加入主要组   -G 加入辅助组
  [[email protected] testdir]# useradd -u 520 -s /bin/csh -g root -G bin lxz
  #   -u 指定uid   -s 指定登录shell     -g  指定主组    -G 指定辅助组

用户属性更改命令

命令3

#语法
usermod[OPTION]login
[[email protected] testdir]# usermod -d /root/ liaoxz 
usermod
#主要选项
 -c   修改用户帐号的备注文字; 
 -d   修改用户登入时的目录; 
 -e   修改帐号的有效期限; 
 -f   修改在密码过期后多少天即关闭该帐号;
 -g   修改用户所属的群组; 
 -G   修改用户所属的附加群组;
 -l   修改用户帐号名称;
 -L   锁定用户密码,使密码无效;
 -s   修改用户登入后所使用的shell;
 -u   修改用户ID;
 -U   解除密码锁定。 
#实例
[[email protected] testdir]# usermod -d /root/  -c "liaoxz" -u 521 liaoxz
#-d 修改用户目录  -c  修改备注信息  -u 修改UID

删除用户命令

命令4

#语法
userdel [options] LOGIN
#主要参数 
  -f 强制删除用户;
  -r 删除用户同时删除相关文件。
#实例
[[email protected] testdir]# userdel -fr lxz

用户切换命令

命令5

#语法
su [OPTION]... [-] [USER [ARG]...]
#主要选项:
su –                     登录式切换。直接登录到用户配置文件 属于完全切换命令;
su                      非登录式切换 不会读取配置文件,不改变当前工作目录命令;
su  -username -c “ls”使用指定用户在不切换的情况执行某个命令;
su  -l username        相当于执 su – username 。
#实例
[[email protected] testdir]# su lxz
[[email protected] testdir]$ pwd
/testdir
[[email protected] testdir]$ who am i 
root     pts/1        2016-07-26 09:22 (10.1.250.31)
[[email protected] testdir]$ 
 #使用su不添加任何选项   不变更工作目录,以及HOME,SHELL,USER,logname。不会变更PATH变量

设置用户密码

命令5

#语法
passwd[OPTIONS] UserName
#主要选项
-d:删除密码,仅有系统管理者才能使用;
-f:强制执行;
-k:设置只有在密码过期失效后,方能更新;
-l:锁住密码;
-s:列出密码的相关信息,仅有系统管理者才能使用;
-u:解开已上锁的帐号。
#实例
[[email protected] ~]# useradd lxz
[[email protected] ~]# passwd lxz
Changing password for user lxz.
New password: 
BAD PASSWORD: The password is shorter than 8 characters
Retype new password: 
passwd: all authentication tokens updated successfully.
#给用户设置密码

[[email protected] ~]# cat /etc/shadow
lxz:$6$isscheKT$T8sdUTJjZKjzvPBM6SXjLYGie7FbUTYQekpvhDHEwnyl577ZMLjkQhNXd6s2ZMJfU07.mNJyDI
nI6P5YnKNHq0:17015:0:99999:7:::
#查看文件

[[email protected] ~]# passwd -d lxz
Removing password for user lxz.
passwd: Success
#删除密码

[[email protected] ~]# cat /etc/shadow
lxz::17015:0:99999:7:::
#密码passwd 添加-d选项删除密码成功

用户其他相关命令

#<修改用户信息>
#语法
chfn [option] [username]
#实例
[[email protected] ~]# chfn xiaoliao
Changing finger information for xiaoliao.
Name []: li^H
chfn: control characters are not allowed
Name []: liao
Office []: none
Office Phone []: 13600110011
Home Phone []: 3368663

Finger information changed.
[[email protected] ~]# getent passwd xiaoliao
xiaoliao:x:1003:1003:liao,,13600110011,3368663:/home/xiaoliao:/bin/bash
#更改xiaoliao用户常用信息为备注为liao,手机号为13600110011,家用电话号为3368663

#<指定用户shell>
#语法
chsh [option] [username]
#实例
[[email protected] ~]# chsh xiaoliao
Changing shell for xiaoliao.
New shell [/sbin/nologin]: /bin/csh
Shell changed.
[[email protected] ~]# getent passwd xiaoliao
xiaoliao:x:1003:1003:liao,,13600110011,3368663:/home/xiaoliao:/bin/csh
#更改用户xiaoliao的shel为/bin/csh 

#<查看其它用户的信息>
#语法
finger [username]
#实例
[[email protected] Packages]# rpm -ivh finger-0.17-52.el7.x86_64.rpm 
warning: finger-0.17-52.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY
Preparing...                          ################################# [100%]
Updating / installing...
   1:finger-0.17-52.el7               ################################# [100%]
[[email protected] Packages]# fin
find                   findfs                 findmnt                finger
find2perl              find-jar               find-repos-of-install  
[[email protected] Packages]# finger xiaoliao
Login: xiaoliao       			Name: liao
Directory: /home/xiaoliao           	Shell: /bin/csh
Office: 13600110011, 336-8663
Never logged in.
No mail.
No Plan.
[[email protected] Packages]# finger xiaohua
Login: xiaohua        			Name: 
Directory: /home/xiaohua            	Shell: /bin/bash
Last login Wed Aug  3 09:53 (CST) on pts/2
No mail.
No Plan.
#因为系统默认没有安装该工具,所以先安装,使用finger [username] 查看到了xiaoliao,xiaohua的
用户信息



组管理

创建组

命令1

#语法
groupadd [options] group
#主要选项
-g:指定新建工作组的id; 
-r:创建系统工作组,系统工作组的组ID小于500; 
-K:覆盖配置文件“/ect/login.defs”; 
-o:允许添加组ID号不唯一的工作组。
#实例
[[email protected] ~]# groupadd -g 518 -r liao
[[email protected] ~]# cat /etc/group
liao:x:518:

修改组的属性

命令2

#语法
groupmod [options] GROUP
#主要选项
-g:设置欲使用的群组识别码; 
-o:重复使用群组识别码; 
-n:设置欲使用的群组名称。
#实例
[[email protected] ~]# groupmod -g 528 -n liaox liao
[[email protected] ~]# cat /etc/group
liaox:x:528:
#修改组liao的GID为528 并改名为liaox

设置组密码

命令3

#语法
gpasswd [option] group
#主要选项
-a:添加用户到组; 
-d:从组删除用户; 
-A:指定管理员; 
-M:指定组成员和-A的用途差不多; 
-r:删除密码; 
-R:限制用户登入组,只有组中的成员才可以用newgrp加入该组。
#实例
[[email protected] ~]# gpasswd lxz
Changing the password for group lxz
New Password: 
Re-enter new password: 
[[email protected] ~]# cat /etc/gshadow
lxz:$6$3dQLT/P9053$dBPGZR7j6xKsEUy4lmnZDHnMNH4WGJ5XiHCeCjGETQn4XomOQGHTST9q/bLwOOoHvz3NwNu
7/DL0xX9zEfeZl0::
#给使用gpasswd给用户lxz设置区密码

[[email protected] ~]# gpasswd -a  l  lxz
Adding user l to group lxz
lxz:$6$3dQLT/P9053$dBPGZR7j6xKsEUy4lmnZDHnMNH4WGJ5XiHCeCjGETQn4XomOQGHTST9q/bLwOOoHvz3NwNu
7/DL0xX9zEfeZl0::l
#将l用户加入到组lxz中

[[email protected] ~]# gpasswd -r lxz
[[email protected] ~]# cat /etc/gshadow
lxz:::l
#将组lxz的密码删除

删除组

命令4

#语法
 groupdel [options] GROUP
#实例
[[email protected] ~]# groupadd xiaoliao
[[email protected] ~]# getent group xiaoliao
xiaoliao:x:1003:
[[email protected] ~]# groupdel xiaoliao
[[email protected] ~]# getent group xiaoliao
[[email protected] ~]# 
 #新建用户xiaoliao,并将其删除

组成员更改与查看

命令5

#语法
groupmems  [options] [action]
#主要选项
-g: –group groupname 更改组 groupname,而不是用户的组(只 root); 
-R: –root CHROOT_DIR chroot 到的目录动作; 
-a: –add 将用户 username 添加到组成员中; 
-d: –delete username 从组的成员中删除用户; 
-h: –help 显示此帮助信息并推出; 
-p: –purge 从组中移除所有成员; 
-l: –list 列出组中的所有成员。 
#实例
[[email protected] ~]# useradd xiaoliao
[[email protected] ~]# groupadd xiaoliaogroup
[[email protected] ~]# groupmems -g xiaoliaogroup -a xiaoliao
[[email protected] ~]# getent group xiaoliaogroup
xiaoliaogroup:x:1004:xiaoliao
#将用户xiaoliao加到组xiaoliaogroup
 
[[email protected] ~]# groupmems -g usergroup -l 
xiaowang  xiaoqiang  xiaohua  xiaoliu
#列出组usergroup的成员

组常用基本命令

命令6

#临时切换基本组命令
#语法
newgrp [-] [group]
#实例
[[email protected] ~]# newgrp usergroup
[[email protected] ~]# id
uid=0(root) gid=1009(usergroup) groups=1009(usergroup),0(root) context=unconfined_u:unconf
ined_r:unconfined_t:s0-s0:c0.c1023
[[email protected] ~]# exit
[[email protected] ~]# id
uid=0(root) gid=0(root) groups=0(root) context=unconfined_u:unconfined_r:unconfined_t:s0-s
0:c0.c1023
#临时将root用户添加到usergrou组,当用户退出后再登录失效


命令7

#查看用户所属组列表
#语法
groups [OPTION]... [USERNAME]...
#实例
[[email protected] ~]# groups xiaoliao
xiaoliao : xiaoliao xiaoliaogroup usergroup 
#查看用户xiaoliao所属组列表

时间: 2024-11-03 21:07:18

笔记-linux系统用户与组的相关文章

Linux系统用户与组的基本命令

用户和组的管理主要是出于对人员的管理,在多用户多任务分时操作系统中:所有一个要使用系统资源的用户都必须先向系统管理员申请一个账号,然后以这个账号的身份进入系统.用户的账号一方面能帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问:另一方面也能帮助用户组织文件,并为用户提供安全性保护.每个用户账号都拥有一个惟一的用户名和用户密码.用户在登录时键入正确的用户名和密码后,才能进入系统和自己的主目录.用户和组的管理就是要对员工的账号进行不同程度的管理,一个用户属于什么组对应的使用这个组所

Linux系统用户、组和权限及管理

初学Linux,现将对用户.组和权限及管理做了一些整理,希望大家相互学习! 用户: 即在系统内将有限的资源在多个使用者之间进行分配的一个系统组件: 用户分类:Linux环境中用户一般分为管理员和普通用户: 管理员(root)是系统中的超级用户,被授予对系统资源所有的访问权限,可以对其它其它用户及组进行管理: 普通用户又分为系统用户和登录用户: 系统用户:仅用于运行服务程序,保障系统正常运行: 登录用户:系统资源的正常使用者,访问资源的权限需要Root管理指定: 用户ID(User ID UID)

linux系统 用户和组管理类命令的使用方法

列出当前系统上所有已经登录的用户的用户名,注意:同一用户登录多次,则只显示一次即可. [[email protected] ~]# who    #显示当前用户登录信息 root    tty1         2016-10-05 15:58 root    pts/0        2016-10-05 16:07(192.168.0.17) [[email protected] ~]# who | cut -d' ' -f1    #取出当前用户登录信息的用户名 root root [[e

Linux系统用户和组练习题

1.列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可. 2.取出最后登录到当前系统的用户的相关信息. 3.取出当前系统上被用户当作其默认shell的最多的那个shell. 4.将/etc/passwd中的第三个字段数值最大的后10个用户的信息全部改为大写后保存至/tmp/maxusers.txt文件中. 5.取出当前主机的IP地址,提示:对ifconfig命令的结果进行切分. 6.列出/etc目录下所有以.conf结尾的文件的文件名,并将其名字转换为大写后保存

【Linux笔记】Linux的用户、组管理

1. Linux的用户.组管理 1)   用户 i.      添加用户 useradd 用户名 useradd 不带参数直接添加用户时,家目录默认在/home下,默认使用bash shell 例1: [[email protected] etc]# useradd testyx [[email protected] etc]# cd /home [[email protected] home]# ls ads_yx  testyx [[email protected] home]# passw

linux系统-用户管理-概念及原理

linux系统-用户管理-概念及原理 一 相关概念 1 /etc/passwd 的文件格式:用户名:密码位:用户标识号:组标识号:注释等相关描述:宿主目录:默认的shell,列如 chengzhi:x:500:500:chengzhi-CentOS:/home/chengzhi:/bin/shell 2 /etc/shadow 的文件格式:用户名:md5加密的密码(md5是单向不可逆的算法,固定长度):最后一次修改的时间:最大时间间隔:最小时间间隔:警告时间:闲置时间:失效文件:标志,前面两项比

linux系统-用户管理-常用命令

linux系统-用户管理-常用命令 一 用户 1 useradd 用户名 [-参数].. 2 passwd 改密码 3 usermod 修改用户的信息 [-G 添加用户到用户组] [-L禁用用户][-U恢复用户] 二 用户组 1 groupadd 组名 [-参数] 添加用户组 2 groupdel  删除用户组 3 groupmod 设置信息 三 用户与用户组 1 添加用户到用户组:gpasswd -a 用户组 用户 2 用户组删除用户:gpasswd -d 用户 3 设置用户组管理员:gpas

Linux系统用户与用户组介绍

一:Linux多用户多任务介绍 Linux/Unix是一个多用户,多任务的操作系统:在介绍Linux账号及账号组管理之前,先简单了解下多用户,多任务操作系统的基本概念. Linux的单用户多任务 鉴于大家对windows比较熟悉,因此先以windows系统为例阐述.当我们以管理员账号administrator用户登录windows系统后,可能需要编辑word文档内容,但在编辑文件的过程中,又可能会同时打开音乐播放器听音乐:同时还可能会打开MSN/QQ等一些程序.其中编辑word文档.开播放器,开

linux系统用户以及用户组管理

用户组管理 1.   groupadd 功能说明:新建群组. 语 法:groupadd [-g gid [-o]] [-r] [-f] [群组名称] 补充说明:groupadd 可指定群组名称来建立新的群组帐号.需要时可从系统中取得新群 组值. 参 数: -g <群组识别码>  设置欲使用的群组识别码,group’s id. 实例 : 不加-g 则按照系统默认的gid创建组,跟用户一样,gid也是从500开始的 -g选项可以自定义gid 2. groupdel 功能说明:删除群组. 语 法:g