当前位置: 澳门新濠3559 > 操作系统 > 正文

程序用户不能用于登录系统或管理系统等操作,

时间:2019-11-08 15:11来源:操作系统
一、用户账号的增、删、改、查 Linux系统管理04——账号管理 1添加用户------useradd 一、用户账号管理 1、用户账号概述 (1)用户账号的常见分类: 1 超级用户:root uid=0  gid=0 权限最大

一、用户账号的增、删、改、查

Linux系统管理04——账号管理

1>添加用户------useradd

一、用户账号管理

1、用户账号概述

(1)用户账号的常见分类:

1> 超级用户:root uid=0  gid=0 权限最大。

2> 普通用户:6000>=uid>=500  做一般权限的系统管理,权限有限。

3> 程序用户:1=<uid<500  为了提升系统安全性,为了支持所对应服务对系统资源的使用,程序用户不能用于登录系统或管理系统等操作。

  创建程序用户时会指定选项: -M -s /sbin/nologin

 

(2)UID:用户标识

(3)用户账号文件

1>  /etc/passwd

作用:保存用户名称、宿主目录、登录Shell等基本信息,每一行对应一个用户的账号记录。

共7各字段,各字段代表含义:

 

第一字段 crushlinux:用户账号名

第二字段 x:密码占位符

第三字段 500:uid 编号

第四字段 500:gid 编号

第五字段 空:用户备注

第六字段 /home/crushlinux:用户宿主目录

第七字段 /bin/bash:登录的shell(若为/sbin/nologin 则不能登录)

 

2>  /etc/shadow

作用: 保存用户的密码、账号有效期等信息,每一行对应一个用户的密码记录。

共9字段,目前只启用前7字段,各字段代表的含义:

 

第一字段 crushlinux:用户账号名

第二字段 $6$I….Yi1:密文

第三字段16793:账号上次修改时间距1970年1月1日过去多少天

第四字段0:距上次密码修改起多少天内不能再次修改密码,单位“天”。“0”:表示随时可修改密码。

第五字段99999:密码过期天数(密码在修改密码后多少天必须重新修改密 码。99999表示永久可以使用。)

第六字段7:强制密码修改提醒时间(7表示在密码过期前7天开始警告)

第七字段 空:当密码过期后经过多少天该帐号会被禁用

第八字段 空:密码过期日期,若设置则显示为过期日期距1970年1月1 日多少天。

 

2、添加用户账号 useradd命令 (adduser 是useradd的快捷方式,ubuntu系列操作系统中的默认命令)

 

[root@crushlinux ~]# ls -l $(which adduser)
lrwxrwxrwx. 1 root root 7 Apr 13  2016 /usr/sbin/adduser -> useradd

 

  

 

(1)格式:useradd [选项] 用户名

(2)选项:

-u:指定uid标记号

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

-e:指定账号失效时间

-M:不为用户建立初始化宿主目录

-s:指定用户的登录shell

-g:指定用户的基本组名(或gid号)

-G:指定用户的附加组名(或gid号)

-c:添加备注,显示在/etc/passwd第五字段

-r:创建系统用户

(3)示例:

[root@crushlinux ~]# groupadd group1

[root@crushlinux ~]# mkdir -p /testgroup1

[root@crushlinux ~]# groupadd jiaoxue

[root@crushlinux ~]# useradd -d /testgroup1/tom/ -g group1 -G jiaoxue -s /bin/bash -e  2016-01-01 tom   (注意:创建组时,指定到上层目录即可)

[root@crushlinux ~]# passwd tom

 

[root@crushlinux ~]# tail -1 /etc/passwd

tom:x:501:501::/testgroup1/tom/:/bin/bash

[root@crushlinux ~]# tail -1 /etc/shadow

tom:$6$oe91WmLV$11aOIhoKOYMSNUl6wnSpYJfsr1V8vfbCPPFoBN76RSjKnPECXEC1KU aBA8Utnk2qBV8uHh78U65qyr3ZQNqdx1:16798:0:99999:7::16801:

 

3、用户账号的初始配置文件

(1)文件来源:新建用户账号时,用户的宿主目录(家目录)是从/etc/skel/目录中复制而来

 

[root@crushlinux ~]# ls -a /etc/skel/
.  ..  .bash_logout  .bash_profile  .bashrc  .gnome2  .mozilla
[root@crushlinux ~]# ls -a /home/tom/
.  ..  .bash_logout  .bash_profile  .bashrc  .gnome2  .mozilla

 

 

 

(2)主要的用户初始配置文件:

1> ~/.bash_profile:每次登录时执行

2> ~/.bashrc:每次进入新bash环境时执行

3> ~/.bash_logout:每次退出登录时执行

 

(3)进行修改后查看具体作用:

[root@crushlinux ~]# vi ~tom/.bash_profile

# .bash_profile

# Get the aliases and functions

if [ -f ~/.bashrc ]; then

        . ~/.bashrc

fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin

export PATH

echo "welcome tom!"    【增加此内容】

保存并退出

[root@crushlinux ~]# vi ~tom/.bashrc

# .bashrc

# Source global definitions

if [ -f /etc/bashrc ]; then

        . /etc/bashrc

fi

# User specific aliases and functions

echo "hi!this is a new bash!"  【增加此内容】

保存并退出

[root@crushlinux ~]# vi ~tom/.bash_logout

# ~/.bash_logout

echo "byebye tom!"

sleep 3

保存并退出

程序用户不能用于登录系统或管理系统等操作,常用命令选项。 

在虚拟机中新打开tyy2端口 以tom身份登录

4、设置/更改用户口令 passwd命令

(1)格式:passwd [选项] 用户名

(2)常用选项:

-d:清空用户密码

-l: 锁定用户账号

-S:查看用户账号的状态(是否被锁定)

-u:解锁用户账号

-x, --maximum=DAYS:密码的最长有效时限

-n, --minimum=DAYS:密码的最短有效时限

-w, --warning=DAYS:在密码过期前多少天开始提醒用户

-i, --inactive=DAYS:当密码过期后经过多少天该帐号会被禁用

(3)示例:

[root@crushlinux ~]# passwd -l tom

锁定用户 tom 的密码 。

passwd: 操作成功

 

[root@crushlinux ~]# passwd -S tom

tom LK 2015-12-29 0 99999 7 -1 (密码已被锁定。)

[root@crushlinux ~]# passwd -u tom

解锁用户 tom 的密码 。

passwd: 操作成功

[root@crushlinux ~]# passwd -S tom

tom PS 2015-12-29 0 99999 7 -1 (密码已设置,使用 SHA512 加密。)

[root@crushlinux ~]# passwd -d tom

清除用户的密码 tom。

passwd: 操作成功

 

5、修改用户属性 usermod命令

(1)格式:usermod [选项] … 用户名

(2)常用选项:

-l:更改用户账号的登录名字

-c:修改用户备注

-L:锁定用户账号

-U:解锁用户账户

以下选项与useradd命令中的含义相同:-u、-d、-e、-s、-c

(3)示例:

[root@crushlinux ~]# usermod -l tom1 tom

[root@crushlinux ~]# tail -1 /etc/passwd

tom1:x:501:501::/testgroup1/tom/:/bin/bash

[root@crushlinux ~]# usermod -c jiaoxue tom1

[root@crushlinux ~]# tail -1 /etc/passwd

tom1:x:501:501:jiaoxue:/testgroup1/tom/:/bin/bash

[root@crushlinux ~]# usermod -s /sbin/nologin user1

[root@crushlinux ~]# tail -1 /etc/passwd

user1:x:510:510::/home/user1:/sbin/nologin

[root@crushlinux ~]# usermod -s /bin/bash user1

[root@crushlinux ~]# tail -1 /etc/passwd

user1:x:510:510::/home/user1:/bin/bash

chsh命令:

[root@crushlinux ~]# chsh user1

Changing shell for user1.

New shell [/bin/bash]: /sbin/nologin

Shell changed.

[root@crushlinux ~]# tail -1 /etc/passwd

user1:x:510:510::/home/user1:/sbin/nologin

 

6、删除用户账号 userdel命令

(1)格式:userdel 用户名

(2)常用选项:

-r:删除用户的同时删除用户的宿主目录

(3)示例:

[root@crushlinux ~]# userdel -r tom1

[root@crushlinux ~]# ls /testgroup1/

 

  注:1、用户名不应是纯数字或者以数字开头

二、组账号管理

1、组长号概述

(1)组账号分类:

基本组(私有组)

附加组(公共组)

(2)GID:组标识号

(3)组账号文件

1>  /etc/group:保存组账号基本信息

2>  /etc/gshadow:保存组账号的密码信息(较少使用)

 

2、添加组账号 groupadd命令

(1)格式:groupadd [-g GID] 组账号名

(2)常用选项:-g GID

(3)示例:

[root@crushlinux ~]# tail -3 /etc/group

crushlinux:x:500:

group1:x:501:

jiaoxue:x:502:

[root@crushlinux ~]# groupadd -g 888 market

[root@crushlinux ~]# tail -4 /etc/group

crushlinux:x:500:

group1:x:501:

jiaoxue:x:502:

market:x:888:

 

3、设置组账号密码(极少用),添加、删除组成员 gpasswd命令

(1)格式:gpasswd [选项] … 组账号名

(2)常用选项:

-a:向组内添加一个用户

-d:从组内删除一个用户成员

-M:定义组成员列表,以逗号分隔

(3)示例:

[root@crushlinux ~]# useradd test1

[root@crushlinux ~]# useradd test2

[root@crushlinux ~]# useradd test3

[root@crushlinux ~]# gpasswd -a test1 market

Adding user test1 to group market

[root@crushlinux ~]# tail -4 /etc/group

market:x:888:test1

test1:x:889:

test2:x:890:

test3:x:503:

[root@crushlinux ~]# gpasswd -d test1 market

Removing user test1 from group market

[root@crushlinux ~]# tail -4 /etc/group

market:x:888:

test1:x:889:

test2:x:890:

test3:x:503:

[root@crushlinux ~]# gpasswd -M test1,test2,test3 market

[root@crushlinux ~]# tail -4 /etc/group

market:x:888:test1,test2,test3

test1:x:889:

test2:x:890:

test3:x:503:

[root@crushlinux ~]# gpasswd -M test1 market

[root@crushlinux ~]# tail -4 /etc/group

market:x:888:test1

test1:x:889:

test2:x:890:

test3:x:503:

 

4)增加或删除组成员,也可用vi编辑器对/etc/group文件直接编译修

 

market:x:888:test1:test2:test3

 

4、删除组账号 groupdel命令

(1)格式:groupdel 组账号名

(2)示例:

[root@crushlinux ~]# groupdel market

[root@crushlinux ~]# tail -5 /etc/group

group1:x:501:

jiaoxue:x:502:

test1:x:889:

test2:x:890:

test3:x:503:

 

三、查询用户命令——id、groups、finger、w、whoami、who

1、id命令

(1)作用:查询用户身份标识

(2)格式:id [用户名]

(3)示例:

[root@crushlinux ~]# id crushlinux

uid=500(crushlinux) gid=500(crushlinux) 组=500(crushlinux)

[root@crushlinux ~]# id

uid=0(root) gid=0(root) 组=0(root)

 

2、groups命令

(1)作用:查询客户所属的组

(2)格式:groups [用户名]

(3)示例:

[root@crushlinux ~]# groups crushlinux

crushlinux : crushlinux

[root@crushlinux ~]# groups

root

 

3、finger命令(需安装,安装过程详见“Linux系统管理03”)

(1)作用:查询账号的详细信息

(2)格式:finger [用户名]

(3)示例:

[root@crushlinux ~]# finger crushlinux

Login: crushlinux           Name:

Directory: /home/crushlinux               Shell: /bin/bash

Last login 四 12月 24 17:02 (CST) on tty2

No mail.

No Plan.

[root@crushlinux ~]# finger

Login     Name       Tty      Idle  Login Time   Office     Office Phone

root      root       tty1     2:16  Dec 29 15:04 (:0)

root      root       pts/0    2:14  Dec 29 15:04 (:0.0)

root      root       pts/1          Dec 29 15:05 (192.168.200.101

 

4、w命令

(1)作用:查询已登录到主机的用户信息

(2)示例:

[root@crushlinux ~]# w

 17:25:12 up  2:21,  3 users,  load average: 0.00, 0.00, 0.00   (1分钟 5分钟 15分钟系统负载均值。数值不能长期超过cpu核数,否则需要重新安装系统)

USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT

root     tty1     :0               15:04    2:21m  9.78s  9.78s /usr/bin/Xorg :0 -nr -verbose -audit 4 -auth /var/run/gdm/auth-for-g

root     pts/0    :0.0             15:04    2:19m  0.02s  0.02s /bin/bash

root     pts/1    192.168.200.101    15:05    0.00s  1.53s  0.02s w

 

5、whoami

(1)作用:查询当前登录的账号名

(2)示例:

[root@crushlinux ~]# whoami

root

 

6、who

(1)作用:与w命令类似,查询查询已登录到主机的用户

(2)示例:

[root@crushlinux ~]# who

root     tty1         2015-12-29 15:04 (:0)

root     pts/0        2015-12-29 15:04 (:0.0)

root     pts/1        2015-12-29 15:05 (192.168.200.101)

 

    2、将登陆shell改为/sbin/nologin可禁止用户登录

格式:useradd [选项] 用户名

常用命令选项

  -u:  设置UID标记号

  -d:  指定用户的宿主目录,缺省值为/home/‘用户名’

  -g:  指定用户的基本组

  -G:  指定用户的附加组

  -e:  指定用户的失效时间

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

  -s:  指定用户的登录shell

练习:

 

澳门新濠3559,1)创建账户stu01,宿主目录设为/opt/stu01 

  [root@stu ~]#useradd -d /opt/stu01 stu01

 

2)创建帐户stu02,uid为10001,账户在2018-06-30号过期,基本组设为stu01

 

  [root@stu ~]#useradd -u 10001 -e 2018-6-30 -g stu01 stu02

  [root@stu ~]# id stu02
  uid=10001(stu02) gid=502(stu01) groups=502(stu01)

  命令:id 用户名---查看用户的所属信息

2>设置口令------passwd

格式:passwd [选项] 用户名

  注:1、root用户可以修改任何用户的密码

    2、所有用户可以修改自己的密码

常用命令选项

  -d  清空用户的密码,使用户没有密码即可登录

  -l  锁定用户账号,即用户无法登录  【在shadow中的对应密码串前加两个叹号!!】

  -S  查看用户账号状态,即是否被锁定

    stu01 LK 2017-08-25 0 99999 7 -1 (Password locked.)    【账号被锁定】

    stu01 PS 2017-08-25 0 99999 7 -1 (Password set, MD5 crypt.)  【账号被解锁】

  -u  解锁用户账号  【清楚锁定时密码串前添加的两个叹号】

  --stdin  从标准输入中获取密码

练习:

1)针对stu01操作从标准输入给stu01设置密码为redhat

  [root@stu ~]# echo 'redhat' | passwd --stdin stu01

 

3>修改已有用户------usermod

格式:usermod [选项] 用户名

常用选项

  -l  更改用户的登录名

  -L  锁定用户账户【在shadow中对应的密码串前加1个叹号!】

  -U  解锁用户账户【解除锁定时添加的叹号】

  -u -d -e -g -G -s 与useradd 命令相同

4>密码有效期控制------chage

格式:chage [选项] 用户名

常用命令:chage -d 0 用户名  【让用户初次登录时必须修改密码】

  -l  列出密码有效期信息

  -E  指定账号过期时间 YY-MM-DD

  -I  指定当密码失效多少天后锁定账号

  -m  指定密码失效的最小天数

  -M  指定密码失效的最大天数

5>删除用户------userdel

格式:userdel [选项] 用户名

  userdel 用户名 【只删除用户账号不删除宿主目录,邮件文件等数据】

  userdel -r 用户名 【删除用户所有数据】

6>查看用户标识------id

  查看用户自己的标识:id

  查看指定用户的标识:id  用户名

  只列出私有组的标识:id -g 用户名,id -gn 用户名

  只列公共有组的标识:id -G 用户名,id -Gn 用户名

  -n  标识显示名字

 

编辑:操作系统 本文来源:程序用户不能用于登录系统或管理系统等操作,

关键词:

  • 上一篇:没有了
  • 下一篇:没有了