linux用户、组管理

写在前面:

本博客详解命令如下:

useradd, userdel,usermod, passwd,  chage, groupadd,  groupdel, groupmod, gpasswd ,newgrp, chsh, id, su,


用户,组,权限管理

用户标示:userID=UID

用16位二进制标示:0-65535

管理员:0

普通用户:1-65535

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

登陆用户:500-60000(centos6),1000-60000(centos7)

名称解析:名称转换,根据名称解析库进行/etc/passwd 即username <--> UID

进程以其发起者的身份运行,进程对文件的访问权限,取决于发起此进程的用户的权限

为了让后台进程或服务进程以非管理员的身份运行,通常需要维持创建多个普通用户,这类用户从不用登陆系统

组标示:groupID=GID

组类别1:

管理员组:0

普通用户组:1-65535

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

登陆用户组:500-60000(centos6),1000-60000(centos7)

名称解析:groupname<-->GID,解析库:/etc/group

组类别2

用户基本组

用户附加组

组类别3

私有组:组名同用户,且只包含一个用户

公共组:组内包含了多个用户

用户信息的存储位置

/etc/passwd:用户信息库

具体查看/etc/passwd的方法:

[[email protected] ~]# whereis passwd

passwd: /usr/bin/passwd /etc/passwd /usr/share/man/man1/passwd.1.gz /usr/share/man/man5/passwd.5.gz

[[email protected] ~]# man 5 passwd

具体内容如下:

name:passwd:UID:GID:GECOS:directory:shell

name :用户名

passwd:加密的密码,或者占位符x

UID:用户ID

GID:用户所属组的ID

GECOS:注释信息

dircotory:用户的家目录

shell:用户的默认shell

下行是以用户breeze为例查看得的信息

breeze:x:1004:1004::/home/breeze:/bin/bash

/etc/shadow:

可用 命令“man 5 shadow”查看详细解释信息

此文件保存用户的密码的相关信息:以冒号隔开。下面以用户breeze的密码为例:

breeze:$6$9lM/L.1L$NIV.GqNo5KnzuWsPu5dTQQuESC/MW6fgBzbss7YdbcWDx8Q6OBYZ9nPbnmib7UR9tH0G3U6WLcHbt.wsrk9oc/:16778:0:99999:7:5:88888:

用户名:breeze

加密后的密码:

$6$9lM/L.1L$NIV.GqNo5KnzuWsPu5dTQQuESC/MW6fgBzbss7YdbcWDx8Q6OBYZ9nPbnmib7UR9tH0G3U6WLcHbt. wsrk9oc/

前两个$之间的6表示加密码类型。6表示sha512sum方式加密。第二第三个$之间的9lM/L.1L表示加密     时添加的随机数salt。最后面的一串代码表示加密后的密码串

上一次修改密码的时间:16778,指自从1970年01月01号到上次修改密码之间的天数

最短使用期限:0表示不限制

最长使用期限:99999  表示不限时间

警告期:7 表示在密码过期前7天开始警告你修改密码

非活动期限:5 表示密码过期5之内不修改密码不能再登陆系统,到时只能找管理员解锁

账户过期期限:指从1970-01-01号开始,88888天后过户过期。此不同密码过期,账户过期就不能再登陆

保留字段:此字段暂时没定义信息

/etc/group:

存放组的相关信息。

可用 命令“man 5 group”查看详细解释信息

group_name:passwd :GID:user_list

group_name:组的名字

passwd:组的密码

GID:组ID

user_list:该组的用户成员,以此组为附加组的用户用户列表

/etc/gshadow:

可用 命令“man 5 gshadow”查看详细信息

存放组的相关信息,下面以组mygroup为例:

mygroup:$6$0.CRmuyJ$3nns.....xWLDZqla/:mysql5:mysql5,mysql6

组名:mygrp

密码:$6$0.CRmuyJ$3nns.....xWLDZqla/  为该组加密后的组密码,由于过长,中间省略了一部分

管理员:mysql5为该组的管理员

组成员:mysql5和mysql6两个用户以该组为附加组

再次强调一遍:这四个文件的内容代表什么意思,请用"man 5 [] "查看

用户密码使用策略

1、使用随机密码

2、最短长度大于等于8位

3、至少使用大、小写字母,数字,标点四类符号中的三类

4、定期更换。

加密算法:

对称加密:加密和解密使用同一个密码

非对称加密:加密和解密使用一对秘钥

公钥:public key

私钥:private key

单向加密:只能加密不能解密,提取数据特征码(用人做出指纹,不能拿指纹做出一个完整的人)

定长输出:长度都一样

雪崩效应:原密码微小变化引起加密后密码的绝大多数改变

下面两个例子是演示两种单向加密的雪崩效应,密码就变动一个字符,整个加密后密码几乎完全不同!

[[email protected] tmp]# echo "stupidbid." | md5sum

b111ba6095eecab556928fb090e67bfc  -

[[email protected] tmp]# echo "stupidbird?" | md5sum

617ce59960c4a4069abca8a12591f89f  -

[[email protected] tmp]# echo "stupidbird?" | sha512sum

d55dd8d9e41e90430fb06e5d1cf71ace340c3b641a0a97abecc50590c96aae238662723ee61605ca2ca2bb90627b140e8ab5c6f83188ff61f5022809c47ec5fd  -

[[email protected] tmp]# echo "stupidbird." | sha512sum

f86276b82bd1403dbc38abf01f1b57895b942961f468b00380cb8aa438f838514aea59033c9f46ed72931a998ed81921140def986db842260dd94698b69ce328  -

单向加密工具:

1、md5sum:128位,message digest,

2、sha1sum:secure hash algorithm  160位

3、sha224sum:224 bits

4、sha256sum:256 bits

5、sha384sum: 384 bits

6、sha512sum: 512 bits

敲sha然后TAB键查看有哪些,数字代表多少位

在计算前加salt,加随机数:即使两个人密码一样,由于加了随机数,密码代码仍几乎不同

这个随机数会被系统记住以便用户登录时比对码文

下面演示一些相关的命令:

useradd:create a new useror update default new user information     useradd breeze

-u,--uid UID:指定UID

[[email protected] tmp]# useradd -u 2001 hadoop

[[email protected] tmp]# id hadoop

uid=2001(hadoop) gid=2001(hadoop) 组=2001(hadoop)

-g,--gid group:指定基本组,写ID和组名都可以,但必须事先存在

[[email protected] tmp]# useradd -g 2001 mysql

[[email protected] tmp]# id mysqle

uid=2002(mysqle) gid=2001(hadoop) 组=2001(hadoop)

[[email protected] tmp]# useradd -g breeze mysql3

[[email protected] tmp]# id mysql3

uid=2004(mysql3) gid=1004(breeze) 组=1004(breeze)

-G,--groups group1,group2...:附加组,每个组都用逗号隔开,没有中间的空格,组必须存在

[[email protected] tmp]# useradd -G 2002,2003 mysql5

[[email protected] tmp]# id mysql5

uid=2005(mysql5) gid=2005(mysql5) 组=2005(mysql5),2002(mygroup),2003(hisgroup)

[[email protected] tmp]# useradd -G mygroup,hisgroup mysql6

[[email protected] tmp]# id mysql6

uid=2006(mysql6) gid=2006(mysql6) 组=2006(mysql6),2002(mygroup),2003(hisgroup)

-c,--comment“comment”:注释信息

[[email protected] tmp]# useradd -c "I am foolvbird" mydql4

[[email protected] tmp]# tail -1 /etc/passwd

mydql4:x:2007:2007:I am foolvbird:/home/mydql4:/bin/bash

-d,--home home_dir:以指定的路径为用户的家目录;通过复制/etc/skel此目录并重命名实现;

指定的家目录路径如果事先存在,则不会为用户复制环境配置文件;

/etc/skel中有用户家目录中需要的隐藏文件,一般每个用户家目录中都有,是创建用户时

自动把skel目录复制过去,并更名为用户家目录的。但如果设定已存在的目录为用户家目录,

则不会复制这些隐藏文件,原目录的数据不会丢失

[[email protected] tmp]# ls -a /etc/skel

.  ..  .bash_logout  .bash_profile  .bashrc .mozilla

[[email protected] tmp]# ls -a /home/breeze

.  ..  .bash_logout  .bash_profile  .bashrc .mozilla

[[email protected] tmp]# ls /tmp/oracle1/

a_c  a_d  b_c  b_d

[[email protected] tmp]# useradd -d /tmp/oracle1 oracle1

-useradd:警告:此主目录已经存在。

不从 skel 目录里向其中复制任何文件。

[[email protected] tmp]# ls /tmp/oracle1

a_c  a_d  b_c  b_d

-s, --shell SHELL:指定用户默认shell,可用的shell列表存储在/etc/shells

[[email protected] tmp]# useradd -s /sbin/nologin mysql7

[[email protected] tmp]# tail -n 1 /etc/passwd

mysql7:x:2009:2009::/home/mysql7:/sbin/nologin

/sbin/nologin是不允许登陆的系统用户的shell

-r, --system:创建系统用户

-M,--no-create-home:不创为用户建用户主目录,即使系统在 /etc/login.defs 中的设置 (CREATE_HOME) 为 yes。

-f,--inactive:密码过期后,账户被彻底禁用之前的天数,0表示立即禁用,-1表示不用此功能,默认为-1

注意:创建用户是的诸多默认设置配置文件/etc/login.defs

-D,--defaults:显示创建用户的默认配置

[[email protected] tmp]# useradd -D

GROUP=100

HOME=/home

INACTIVE=-1

EXPIRE=

SHELL=/bin/bash

SKEL=/etc/skel

CREATE_MAIL_SPOOL=yes   每创建一个用户默认创建一个邮筒/var/spool/mail下

-D options:修改配置信息

-e,-f,-g,-s,

修改结果保存于/etc/default/useradd中

如果要修改这些配置信息,就用如下方式

[[email protected] tmp]# useradd -D -s /bin/tcsh

[[email protected] tmp]# useradd mysql8

[[email protected] tmp]# tail -n 1 /etc/passwd

mysql8:x:2010:2010::/home/mysql8:/bin/tcsh

[[email protected] tmp]# ls /var/spool/mail

bree    flimmer  gentoo  mageedu mysql2  mysql5  mysql7  mysqle   rpc

breeze  flivfox  hadoop  mydql4   mysql3 mysql6  mysql8  oracle1  slackware

usermod:  modify a user account   id 查看

-u, --uid  :修改用户的ID

[[email protected] tmp]# id hadoop

uid=2001(hadoop) gid=2001(hadoop) 组=2001(hadoop)

[[email protected] tmp]# usermod -u 2051 hadoop

[[email protected] tmp]# id hadoop

uid=2051(hadoop) gid=2001(hadoop) 组=2001(hadoop)

-g,--gid  :修改用户基本组

[[email protected] tmp]# usermod -g breeze hadoop; id hadoop

uid=2051(hadoop) gid=1004(breeze) 组=1004(breeze)

-G,--groups:修改附加组,原来的附加组会被覆盖

[[email protected] tmp]# usermod -G flivfox hadoop ;id hadoop

uid=2051(hadoop) gid=1004(breeze) 组=1004(breeze),1005(flivfox)

[[email protected] tmp]# usermod -G flimmer hadoop;id hadoop

uid=2051(hadoop) gid=1004(breeze) 组=1004(breeze),1006(flimmer)

-a,--append:附加,只能与-G一同使用,追加附加组,且一次只能增加一个

usermod -a -G

[[email protected] tmp]# usermod  -a -G   flivfox hadoop ;idhadoop

uid=2051(hadoop) gid=1004(breeze) 组=1004(breeze),1005(flivfox),1006(flimmer)

注意:-a必须写在-G 前面,

-c,--comment  修改注释信息

[[email protected] tmp]# usermod -c "I am a stupid bird"mysql8

mysql8:x:2010:2010:I am a stupid bird:/home/mysql8:/bin/tcsh

-d,--home DIR:修改家目录,但用户原有文件不会移动至新目录,而且用户仍然受新家目录权限的限制

[[email protected] ~]# useradd gentoo

[[email protected] ~]# ll -d  /tmp/gentoo

drwxr-xr-x. 2 root root 6 Dec 13 17:16 /tmp/gentoo

[[email protected] ~]# usermod -d /tmp/gentoo gentoo

[[email protected] ~]# su -c "cd;pwd" gentoo

/tmp/gentoo

[[email protected] ~]# ls -a /tmp/gentoo

.  ..

[[email protected] ~]# ls -a /home/gentoo

.  ..  .bash_logout  .bash_profile  .bashrc .mozilla

-m,--move-home:与-d起使用,把原家目录剪切至新家目录,新家目录事先不能存在

[[email protected] ~]# ll /var/tmp/

drwxr-xr-x. 2 abrt abrt 6 Mar 24  2015 abrt

[[email protected] ~]# usermod -m -d /var/tmp/gentoo gentoo

[[email protected] ~]# ls -a /var/tmp/gentoo

.  ..  .bash_logout  .bash_profile  .bashrc .mozilla

[[email protected] ~]# ll -a /home/gentoo

ls: cannot access /home/gentoo: No such file or directory

-l,--login NEW_LOGIN:修改用户名

[[email protected] tmp]# usermod -l oracle2 mysql8

[[email protected] tmp]# id oracle2

uid=2010(oracle2) gid=2010(mysql8) 组=2010(mysql8)

-s,--shell SHELL:修改用户的默认shell;

[[email protected] tmp]# tail  -1 /etc/passwd

oracle2:x:2010:2010:I am a stupid bird:/home/mysql8:/bin/tcsh

[[email protected] tmp]# usermod -s /bin/bash oracle2

[[email protected] tmp]# tail -n 1 /etc/passwd

oracle2:x:2010:2010:I am a stupid bird:/home/mysql8:/bin/bash

-L,--lock:锁定用户密码,禁止登陆,即在用户原来的密码字符串之前添加一个"!";

[[email protected] ~]# usermod -L oracle2

[[email protected] ~]# tail -1 /etc/shadow

oracle2:!$6$UNmW9Hyl$TLLieo9TNV5UTTKnu4itP3gZvax.tz66uPw/BjBg6GzpXr2x/Ir5ggtPrhniod5PzJRh6bE1FSvkqzCpRhcKC.:16781:0:99999:7:::

-U,--unlock:解锁用户密码,去掉!

[[email protected] ~]# usermod -U oracle2

[[email protected] ~]# tail -n 1 /etc/shadow

oracle2:$6$UNmW9Hyl$TLLieo9TNV5UTTKnu4itP3gZvax.tz66uPw/BjBg6GzpXr2x/Ir5ggtPrhniod5PzJRh6bE1FSvkqzCpRhcKC.:16781:0:99999:7:::

userdel:- delete a user accountand related files

删除用户默认删除基本组

-r,--remove:删除用户时一并删除用户家目录

[[email protected] ~]# ls /home

bree    flimmer  gentoo  mageedu mysql2  mysql5  mysql7  mysqle

[[email protected] ~]# userdel -r mysql7 ;id mysql7

id: mysql7: no such user

[[email protected] ~]# ls /home

bree    flimmer  gentoo  mageedu mysql2  mysql5  mysqle

练习1:创建用户gentoo,UID为4001,基本组为gentoo,附加组为distro(GID为5000)和peguin(GID为5001);

[[email protected] tmp]# groupadd -g 5000 distro

[[email protected] tmp]# groupadd -g 5001 peguin

[[email protected] tmp]# tail -2 /etc/group

distro:x:5000:

peguin:x:5001:

[[email protected] tmp]# useradd -u 4001 -G distro,peguin gentoo

[[email protected] tmp]# id gentoo

uid=4001(gentoo) gid=4001(gentoo)groups=4001(gentoo),5000(distro),5001(peguin)

练习2:创建用户fedora,其注释信息为"Fedora Core",默认shell为/bin/tcsh;

[[email protected] tmp]# useradd -c "Fedora Core" -s/bin/tcsh fedora

[[email protected] tmp]# tail -1 /etc/passwd

fedora:x:4002:4002:Fedora Core:/home/fedora:/bin/tcsh

练习3:修改gentoo用户的家目录为/var/tmp/gentoo;要求其原有文件仍能被用户访问;

练习4:为gentoo新增附加组;

[[email protected] tmp]# groupadd netadmin

[[email protected] tmp]# usermod -a -G netadmin gentoo

[[email protected] tmp]# id gentoo

uid=4001(gentoo) gid=4001(gentoo)groups=4001(gentoo),5000(distro),5001(peguin),5002(netadmin)

passwd:- update user‘sauthentication tokens

(1)passwd直接修改自己的密码

[[email protected] ~]$ passwd

Changing password for user flimmer.

Changing password for flimmer.

(current) UNIX password:

(2)passwd username ,管理员修改其他用户密码

[[email protected] ~]# passwd hadoop

Changing password for user hadoop.

New password:

-l,-u:lock,unlock锁定和解锁用户密码

[[email protected] ~]# passwd -l oracle2

Locking password for user oracle2.

passwd: Success

[[email protected] ~]# tail -1 /etc/shadow

oracle2:!!$6$UNmW9Hyl$TLLieo9TNV5UTTKnu4itP3gZvax.tz66uPw/BjBg6GzpXr2x/Ir5ggtPrhniod5PzJRh6bE1FSvkqzCpRhcKC.:16781:0:99999:7:::

[[email protected] ~]# passwd -u oracle2

Unlocking password for user oracle2.

passwd: Success

[[email protected] ~]# tail -1 /etc/shadow

oracle2:$6$UNmW9Hyl$TLLieo9TNV5UTTKnu4itP3gZvax.tz66uPw/BjBg6GzpXr2x/Ir5ggtPrhniod5PzJRh6bE1FSvkqzCpRhcKC.:16781:0:99999:7:::

-d:--delete清除用户密码

[[email protected] ~]# passwd -d oracle2

Removing password for user oracle2.

passwd: Success

[[email protected] ~]# tail -1 /etc/shadow

oracle2::16781:0:99999:7:::

此时oracle2不用输入密码就能登录

[[email protected] ~]$ su - oracle2

[[email protected] ~]$

-e --expire:使期满,必须修改密码才能登录

[[email protected] ~]# passwd -e   oracle2

Expiring password for user oracle2.

passwd: Success

然后该用户就无法登录了,只有先修改密码

[[email protected] ~]$ su - oracle2

密码:

您需要立即更改密码(root 强制)

为 oracle2 更改STRESS 密码。

(当前)UNIX 密码:

-i,--inactive DAYS:非活动期限,不改密码不能登录,超期限就锁定

[[email protected] ~]# tail -1 /etc/shadow

oracle2:$6$Odji/iFz$OfTrucTm........rfJ.:16781:0:99999:7:::

[[email protected] ~]# passwd -i 10 oracle2

Adjusting aging data for user oracle2.

passwd: Success

[[email protected] ~]# tail -1 /etc/shadow

oracle2:$6$Odji/iFz$OfTrucTm........rfJ.:16781:0:99999:7:10::

-n,--minimum DAYS,最小使用期限

-x,--maximum DAYS最大使用期限

[[email protected] ~]# passwd -n 3 -x 30 oracle2

Adjusting aging data for user oracle2.

passwd: Success

[[email protected] ~]# tail -1 /etc/shadow

oracle2:$6$Odji/iFz$OfTrucTm........rfJ.:16781:3:30:7:10::

-w,--warning DAYS,提前多少天警告,警告期限

[[email protected] ~]# passwd -w 5 oracle2

Adjusting aging data for user oracle2.

passwd: Success

[[email protected] ~]# tail -1 /etc/shadow

oracle2:$6$Odji/iFz$OfTrucTm........rfJ.:16781:9:30:5:10::

--stdin

echo "string" | passwd --stdin  breeze  只输入一次就能修改密码成 mageedu

[[email protected] ~]# echo "mageedu" | passwd --stdin oracle2 &> /dev/null ;echo $?

0

[[email protected] ~]#

-S,--state:This will output a short information about thestatus of the password for a given  account

可用来代替/etc/shadow查看密码状态

[[email protected] tmp]# passwd -S redhat

redhat LK 2015-12-13 0 99999 7 9 (Password locked.)

[[email protected] tmp]# tail -1 /etc/shadow

redhat:!!:16782:0:99999:7:9::

[[email protected] tmp]# echo "redhat" | passwd --stdinredhat

Changing password for user redhat.

passwd: all authentication tokens updated successfully.

[[email protected] tmp]# passwd -S redhat

redhat PS 2015-12-13 0 99999 7 9 (Password set, SHA512 crypt.)

[[email protected] tmp]# tail -1 /etc/shadow

redhat:$6$kN......x1:16782:0:99999:7:9::

chage:- change userpassword expiry information更改密码和过期信息    16778:0:99999:7:::

[[email protected] ~]# tail -1 /etc/shadow

oracle1:$6$Szaon4OI$weQ..............E06d.Ape0:16781:0:99999:7:::

-d,--lastday:指定密码上一次最后修改的日期,可用date和days表示,结果为距离1970-01-01多少天

[[email protected] ~]# chage -d 1998-12-12 oracle1

[[email protected] ~]# tail -1 /etc/shadow

oracle1:$6$Szaon4OI$weQ...........E06d.Ape0:10572:0:99999:7:::

[[email protected] ~]# chage -d 15000 oracle1

[[email protected] ~]# tail -1 /etc/shadow

oracle1:$6$Szaon4OI$weQ...........E06d.Ape0:15000:0:99999:7:::

-m,--mindaysa:密码至少使用多久,0表示无限制

[[email protected] ~]# chage -m 5 oracle1

[[email protected] ~]# tail -1 /etc/shadow

oracle1:$6$Szaon4OI$weQ............E06d.Ape0:15000:5:99999:7:::

-M,--maxdays:密码最多使用多久

[[email protected] ~]# chage -M 30 oracle1

[[email protected] ~]# tail -1 /etc/shadow

oracle1:$6$Szaon4OI$weQ............E06d.Ape0:15000:5:30:7:::

-W,--warning:密码过期前多少天开始警告

[[email protected] ~]# chage -W 9 oracle1

[[email protected] ~]# tail -1 /etc/shadow

oracle1:$6$Szaon4OI$weQ.............E06d.Ape0:15000:5:30:9:::

-E,--expiredate:密码有效期到什么时候,可以是date和days,0立即过期。-1禁用此功能,永不过期

倒数第二个属性

[[email protected] ~]# chage -E 2050-12-12 oracle1

[[email protected] ~]# tail -1 /etc/shadow

oracle1:$6$Szaon4OI$weQ..............E06d.Ape0:15000:5:30:9::29565:

[[email protected] ~]# chage -E 88888 oracle1

[[email protected] ~]# tail -1 /etc/shadow

oracle1:$6$Szaon4OI$weQ..............E06d.Ape0:15000:5:30:9::88888:

groupadd: - create a new group

[[email protected] ~]# groupadd stupid

[[email protected] ~]# tail -1 /etc/group

stupid:x:2053:

-g GID:指定GID,默认上一个组加1

[[email protected] tmp]# groupadd -g 2999 foolbird

[[email protected] tmp]# tail -1 /etc/group

foolbird:x:2999:

-r:创建系统组

[[email protected] tmp]# groupadd -r deepin

[[email protected] tmp]# tail -1 /etc/group

deepin:x:991:    -->组id为991 系统组id在1-999

groupdel:- delete a group删除组

[[email protected] tmp]# groupdel awkuid

[[email protected] tmp]# tail -1 /etc/group

foolbird:x:2999:

groupmod: - modify a groupdefinition on the system

-g GID:修改GID

[[email protected] tmp]# groupmod -g 3333 foolbird

[[email protected] tmp]# tail -1 /etc/group

foolbird:x:3333:

-n new_name:修改组名

[[email protected] tmp]# groupmod -n awkuid foolbird

[[email protected] tmp]# tail -1 /etc/group

awkuid:x:3333:

gpasswd:  administer /etc/group and /etc/gshadow

给组加密码

[[email protected] ~]# gpasswd apache

Changing the password for group apache

New Password:

-a,--addUSERNAME:向组中添加用户

[[email protected] ~]# id flimmer

uid=1006(flimmer) gid=1006(flimmer) groups=1006(flimmer)

[[email protected] ~]# gpasswd -a flimmer apache

Adding user flimmer to group apache

[[email protected] ~]# id flimmer

uid=1006(flimmer) gid=1006(flimmer)groups=1006(flimmer),2011(apache)

[[email protected] ~]# tail -1 /etc/group

stupid:x:2053:

[[email protected] ~]# gpasswd -a flimmer stupid

正在将用户“flimmer”加入到“stupid”组中

[[email protected] ~]# tail -1 /etc/group

stupid:x:2053:flimmer

-d,--deleteUSERNAME:从组中一出移除用户

[[email protected] tmp]# gpasswd -d flimmer stupid

Removing user flimmer from group stupid

[[email protected] tmp]# tail -1 /etc/group

stupid:x:2053:

[[email protected] ~]# gpasswd -d flimmer apache

Removing user flimmer from group apache

[[email protected] ~]# id flimmer

uid=1006(flimmer) gid=1006(flimmer) groups=1006(flimmer)

[[email protected] ~]#

newgrp [-] GROUP:- log in to a new group临时切换基本组,id查看,exit退回原来基本组,因为创建文件权限属于基本组的

-:会模拟用户重新登录以实现重新初始化其工作环境

切换到不同的基本组,创建的文件的属主是不同的,

基本组不是谁都能进的,所以加密码

[[email protected] ~]$ id -ng

breeze

[[email protected] ~]$ ll

总用量 0

[[email protected] ~]$ touch text;ll

总用量 0

-rw-rw-r--. 1 breeze breeze 0 12月 13 00:33 text

[[email protected] ~]$

[[email protected] ~]$ newgrp apache

密码:

[[email protected] ~]$ id -ng

apache

[[email protected] ~]$ touch txt;ll

总用量 0

-rw-rw-r--. 1 breeze breeze 0 12月 13 00:33 text

-rw-r--r--. 1 breeze apache 0 12月 13 00:34 txt

[[email protected] ~]$ exit

exit

[[email protected] ~]$ id -ng

breeze

但用id和id breeze查看到的基本组是不同的

[[email protected] ~]$ id

uid=1004(breeze) gid=2011(apache) 组=1004(breeze),2011(apache) 环境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023

[[email protected] ~]$ id breeze

uid=1004(breeze) gid=1004(breeze) 组=1004(breeze)

id: - print real and effective user and group IDs显示用户真实,有效ID

[[email protected] ~]# id hadoop

uid=2051(hadoop) gid=1004(breeze)groups=1004(breeze),1005(flivfox),1006(flimmer)

 

-u,--user:仅显示有效UID

[[email protected] ~]# id -u hadoop

2051

-g,--group:基本组ID

[[email protected] ~]# id -g hadoop

1004

-G,--groups:所属:所有组ID

[[email protected] ~]$ id -G

1004 1005 1006

-n,--name:显示组名而非ID

[[email protected] ~]$ id -nG hadoop

breeze flivfox flimmer

[[email protected] ~]$ id -nu

hadoop

[[email protected] ~]$ id -ng

breeze

[[email protected] ~]$ id -nG

breeze flivfox flimmer

su: switch user

登陆式切换:会重新读取目标用户的配置文件来重新初始化

su - breeze

su -l breeze

非登陆式切换:不会重新读取目标用户的配置文件来重新初始化

su  breeze    所在目录可能是上个用户的家目录,而不是自己的

[[email protected] ~]$ su breeze

密码:

[[email protected] flimmer]$

-c,command:仅以指定用户的身份执行命令,而不是登陆

su -c "whoami" breeze         su -c "ls /tmp" breeze

[[email protected] ~]# su -c "whoami" breeze

breeze

[[email protected] ~]#

[[email protected] ~]# su -c "touch /home/breeze/{text,txt};ls -l/home/breeze" breeze

total 0

-rw-r--r--. 1 breeze breeze 0 Dec 13 00:52 text

-rw-r--r--. 1 breeze breeze 0 Dec 13 00:52 txt

管理员切换普通用户不用密码

几个其他命令:chsh,chfn,finger,

finger breeze  chsh  了解就行

[[email protected] ~]# chsh mysql5      更改shell

Changing shell for mysql5.

New shell [/bin/bash]: /bin/tcsh

Shell changed.

[[email protected] ~]# chfn hadoop    改写注释信息

Changing finger information for hadoop.

名称 [hadoop]: hadoop

办公 [fuck]: whitewall

办公电话 [10086]: 10086

住宅电话 [110]: 110

Finger information changed.

[[email protected] ~]# cat /etc/passwd

....................

hadoop:x:2051:1004:hadoop,whitewall,10086,110:/home/hadoop:/bin/bash

....................

时间: 2024-10-11 01:12:51

linux用户、组管理的相关文章

Linux查找过滤及用户/组管理

1.        列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可. who | cut –d ' ' –f1 | uniq 2.        取出最后登录到当前系统的用户的相关信息. who | tail -1 who | head -1 3.        取出当前系统上被用户当作其默认shell的最多的那个shell cut –d : -f7 /etc/passwd | uniq –c | sort  -n | tail -1 4.        将

Linux用户,组和权限管理

用户,组,权限 一.了解什么是用户,组和权限 1.对于linux系统来说,简单明了的特点就是多用户,多任务,也就是说一台linux系统的主机上面可以同时允许多个用户登录,当通过多个终端登录时可以同时使用这台linux的系统,然而对于linux习题来说,一切皆文件,别人和自己的工作任务都是以文件的形式存在的,不同的用户之间岂不是没有隐私或者安全而言,其实在linux上不是这样的,我们可以理解linux把每一个用户分配一间屋子,没有钥匙即权限我们是进不去浏览以及修改文件的,但是既然是一间屋子,那当然

Linux用户权限管理和组管理相关命令

目标 用户 和 权限 的基本概念 用户管理 终端命令 组管理 终端命令 修改权限 终端命令 01. 用户 和 权限 的基本概念 1.1 基本概念 用户 是 Linux 系统工作中重要的一环,用户管理包括 用户 与 组 管理 在 Linux 系统中,不论是由本机或是远程登录系统,每个系统都必须拥有一个账号,并且对于不同的系统资源拥有不同的使用权限 在 Linux 中,可以指定 每一个用户 针对 不同的文件或者目录 的 不同权限 对 文件/目录 的权限包括: 序号 权限 英文 缩写 数字代号 01

第2章 系统用户/组管理

2.1 用户和组的基本概念 用户和组是操作系统中一种身份认证资源. 每个用户都有用户名.用户的唯一编号uid(user id).所属组及其默认的shell,可能还有密码.家目录.附属组.注释信息等. 每个组也有自己的名称.组唯一编号gid(group id).一般来说,gid和uid是可以不相同的,但绝大多数都会让它们保持一致,大致属于约定俗成类的概念吧. 组分为主组(primary group)和辅助组(secondary group)两种,用户一定会属于某个主组,也可以同时加入多个辅助组.

linux用户和管理类常用命令

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

linux用户及管理权限

linux用户大体分为两种:一是:管理员用户:二是普通用户,普通用户又可以分为系统用户和登录用户.因为linux是一个多用户多任务的系统,所以每一个要使用系统资源的用户,都要向管理员申请一个账号,使用这个账号登录到系统.每个用户都拥有一个自己的名字和密码,以登录到用户. 每个用户都有唯一的用户标识(userid,UID),是以16bits二进制数字来表示0-65535.以CentOS为例管理员用户的UID是0:普通用户的UID为1-65535,其中系统用户的UID在centos6及早些版本为1-

Linux 用户的管理

1.系统中为什么要有用户? 用户使用来进行安全设定(限制权力),组是用来共享权力,通过建立用户组,或者控制新建用户所在的用户组,可以控制用户访问系统的权限.这就是linux中用户组的意义和价值.附加组:可以决定权限,不一定有附加组:初始组:无法决定权限,一定有,不能更改.用户在系统当中以表格和表格中的一系列字符出现的. 举例:你的杯子你可以用,你的女票也可以,但是外人用就不行,因为你有使用你杯子的权力,可是别人没有. 2.用户存在的形态组:共享权力 举例: (1)自己能决定的组:附加组(如:你认

Linux用户权限管理(二)

今天继续讲下用户权限管理,上一章节讲述了用户和组的创建.修改和删除.这篇文章延续上篇文章,来讲述用户具体的权限管理. 首先我们来讲下权限的相关说明:权限分为读(r).写(w).执行(x).对于文件和目录,其权限对应的功能不尽相同. 文件权限: 读(r):查看文件类似cat的权限 写(w):对文件有编辑和删除权限. 执行(x):具有文件执行权限,可以将文件当作命令提交给内核运行 目录权限: 读(r):对目录下的文件只有ls查看权限(不能使用ls -l) 写(w):可以在目录下创建文件 执行(x):

Linux 群组管理

一.用户的主要群组和次要群组. goups  命令查看当前用户所属群组 第一个为主要群组,往后的为次要群组 小结:那个用户创建的那个目录(文件),这个目录(文件)的默认群组就是这个用户 二.用户的管理 三.用户信息的检查 四.默认权限 五.用户群组的管理 在root目录下 1.创建用户群组 groupadd [-g gid][-r]组名 -g:后面接特定的GID,用来指定GID -r:建立系统群组 groupadd group1 可通过 less /etc/group 查看 groupadd -

linux 用户 组 和权限管理

Multi-task  Multi-Users 每个使用者: 用户标识 . 密码: Authentication(认证机制): Authorization  (授权机制): Account / Audition (审计): 组:用户组,用户容器 用户类别: 管理 普通用户 系统用户 登录用户 用户标识: UserIo ,UID 16bits 二进制数字:0-65535 管理员:0 普通用户: 1-65635 系统用户   1-499(Centos6)    1-1000(CentOS7) 登录用