linux基础 用户与组管理

1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。

①通过who或者w命令,可以查询当前登入至系统的用户信息。

②cut命令通过指定特定字符来分割行信息,如空格符, -d" " ,-f 显示分割后指定的段。

③sort用来对结果排序,-u排序后去重

[[email protected] ~]$ who | cut -d" " -f1 | sort -u
allen
root

2、取出当前系统上被用户当作其默认shell的最多的那个shell。

①uniq -c用来显示重复行的次数

②sort -n对结果按数值大小进行排序。

③tail -n 1 获取最后的1行

[[email protected] ~]$ cat /etc/passwd | cut -d: -f7 | sort | uniq -c | sort -n | tail -n 1 | tr -s " " | cut -d‘ ‘ -f3
/sbin/nologin

3、将/etc/passwd中的第三个字段数值最大的后10个用户的信息全部改为大写后保存/tmp/maxusers.txt文件中。

sort命令

选项:    -t DELIMITER 字段分隔符

-k # 以指定字段为标准进行排序

-n 按数值大小排序

[[email protected] ~]$ cat /etc/passwd | sort -n -t: -k3 | tail -n 10 | tr "a-z" "A-Z"> /tmp/maxusers.txt

4、取出当前主机的IP地址,提示:对ifconfig命令的结果进行切分。

grep命令

选项:-E 扩展的正则表达式

-o 仅显示匹配到的项

--color=auto 对匹配到的项着色显示

扩展正则表达式元字符

字符匹配:

.:      匹配任意单个字符

[]:    匹配指定范围内的任意单个字符

[^]:  匹配指定范围外的任意单个字符

字数匹配:

*:      匹配前面字符任意次

?:      0次或1次

+:     1次或多次

{m}:   匹配m次

{m,n}:至少m次,至多那次

锚定符:

^:行首锚定,用于模式的最左侧

$:行尾锚定,用于模式的最右侧

\<,\b:词首锚定,用于单词模式的左侧

\>,\b:词尾锚定,用于单词模式的右侧

分组:

():将一个字符或多个字符捆绑在一起,当做一个整体进行处理

或者:

|:

[[email protected] ~]#ifconfig | grep -E -o --color=auto "(\<([1-9]|[1-9][0-9]|[1][0-9][0-9]|2[0-4][0-9]|25[0-5]])\>\.){3}\<([1-9]|[1-9][0-9]|[1][0-9][0-9]|2[0-4][0-9]|25[0-4])\>"
172.16.130.37

5、显示/var目录下一级子目录或文件的总个数。

[[email protected] ~]# ls /var | wc -l
21

6、取出/etc/group文件中第三个字段数值最小的10个组的名字。

[[email protected] ~]# cat /etc/group | sort -t: -k3 -n | cut -d: -f1 | head -n 10 
root
bin
daemon
sys
adm
tty
disk
lp
mem
kmem

7、将/etc/fstab和/etc/issue文件的内容合并为同一个内容后保存至/tmp/etc.test文件中。

[[email protected] ~]# cat /etc/fstab /etc/issue > /tmp/etc.test

8、请总结描述用户和组管理类命令的使用方法并完成以下练习:

用户管理类命令:

用户创建:useradd

useradd [options] LOGIN

-u UID:[UID MIN,UID MAX],定义在/etc/login.def中

-g GID:指明用户所属基本组,可为组名,也可以是GID

-c "COMMENT":用户的注释信息

-d /PATH/TO/HOME_DIR:以指定的路径为家目录

-s SHELL:指明用户的默认shell程序,可用列表在/etc/shells文件中;

-G GROUP1 [,GROUP2,...[,GROUPN]]:为用户指明附加组,组必须事先存在

-r:创建系统用户

用户属性修改:usermod

usermod [OPTION] login

-u UID:新UID

-g GID:

-G GROUP1 [,GROUP2,...[,GROUPN]]:

-s SHELL:

-c "COMMENT":

-d HOME:

-l login_name:

-L:lock指定用户

-U:unlock指定用户

-e YYYY-MM-DD:指明用户账号过期日期

-f INACTIVE:设定非活动期限

给用户添加密码:passwd

passwd [OPTIONS] UserName:修改指定用户的密码

passwd:修改自己的密码

-l:锁定指定的用户

-u:解锁指定用户

-n mindays:指定最短使用期限

-x maxdays:指定最大使用期限

-w warndays:提前多少天开始警告

-i inactivedays:非活动期限

--stdin:从标准输入接收用户密码

删除用户:userdel

userdel [OPTION]... login

-r:删除用户家目录

查看用户相关的ID信息:id

id [OPTION]... [USER]

-u:UID

-g:GID

-G:Groups

-n:Name

组管理类命令:

组创建:groupadd

groupadd [OPTION]... group_name

-g GID:指明GID号;

-r:创建系统组

组属性修改:groupmod

groupmod [OPTION]... group

-n group_name:新名字

-g GID:新的GID

组删除:groupdel

groupdel GROUP

组密码:gpassed

gpasswd [OPTION] GROUP

-a user:将user添加至指定组中;

-d user:删除用户user的以当前组为组名的附加组

-A user1,user2,...:设置有管理权限的用户列表

newgrp命令:临时切换基本组

示例一、创建组distro,其GID为2016

[[email protected] ~]# groupadd -g 2016 distro

示例二、创建用户mandriva, 其ID号为1005;基本组为distro;

[[email protected] ~]# useradd  -u 1005 -g 2016 mandriva

示例三、创建用户mageia,其ID号为1100,家目录为/home/linux;

[[email protected] ~]# useradd -u 1100 -d /home/linux mageia

示例四、给用户mageia添加密码,密码为mageedu;

[[email protected] ~]# echo "mageedu" | passwd --stdin mageia
Changing password for user mageia.
passwd: all authentication tokens updated successfully.

示例五、删除mandriva,但保留其家目录;

[[email protected] ~]# userdel mandriva

示例六、创建用户slackware,其ID号为2002,基本组为distro,附加组peguin;

[[email protected] ~]# groupadd peguin
[[email protected] ~]# useradd -u 2002 -g 2016 -G peguin slackware

示例七、修改slackware的默认shell为/bin/tcsh;

[[email protected] ~]# usermod -s /bin/tcsh slackware

示例八、为用户slackware新增附加组admins;

[[email protected] ~]# groupadd admins
[[email protected] ~]# usermod -a -G admins slackware

示例九、为slackware添加密码,且要求密码最短使用期限为3天,最长为180天,警告为3天;

[[email protected] ~]# echo "mageedu" | passwd -n 3 -x 180 -w 3 --stdin slackware
Adjusting aging data for user slackware.
passwd: Success

示例十、添加用户openstack,其ID号为3003, 基本组为clouds,附加组为peguin和nova;

[[email protected] ~]# groupadd clouds
[[email protected] ~]# groupadd nova
[[email protected] ~]# useradd -u 3003 -g clouds -G peguin,nova openstack

示例十一、添加系统用户mysql,要求其shell为/sbin/nologin;

[[email protected] ~]# useradd -r -s /sbin/nologin mysql

示例十二、使用echo命令,非交互式为openstack添加密码。

[[email protected] ~]# echo "openstack" | passwd --stdin openstack

9、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。

修改文件权限:usermod

chomod [OPTION]... OCTAL-MODE FILE...

-R:递归修改权限

[[email protected] tuser1]# cp -r /etc/skel /home/tuser1
[[email protected] home]# chmod -R 700 tuser1

10、显示/proc/meminfo文件中以大写或小写S开头的行;用两种方式;

[[email protected] tuser1]# cat /proc/meminfo | grep ^[Ss]
[[email protected] tuser1]# cat /proc/meminfo | grep -i ^s

11、显示/etc/passwd文件中其默认shell为非/sbin/nologin的用户;

[[email protected] tuser1]#grep -E -v "(:/sbin/nologin)[[:space:]]*" | cut -d: -f1 /etc/passwd
root
sync
shutdown
halt
news
user1
allen
mageia
slackware
openstack

12、显示/etc/passwd文件中其默认shell为/bin/bash的用户;

[[email protected] tuser1]#grep -E "(:/bin/bash)[[:punct:]]*" /etc/passwd  | cut -d: -f1
root
user1
allen
mageia
openstack

13、找出/etc/passwd文件中的一位数或两位数;

[[email protected] tuser1]#grep -E --color=auto "\<[0-9]{1,2}\>" /etc/passwd

14、显示/etc/rc.d/rc.sysinit文件中以#开头,后面跟至少一个空白字符,而后又有至少一个非空白字符的行;

[[email protected] tuser1]# grep -E "^#[[:space:]]+[^[:space:]]+" /etc/rc.d/rc.sysinit /etc/rc.d/rc.sysinit
# /etc/rc.d/rc.sysinit - run once at boot time
# Taken in part from Miquel van Smoorenburg‘s bcheckrc.
# Check SELinux status
# Because of a chicken/egg problem, init_crypto must be run twice.  /var may be
# encrypted but /var/lib/random-seed is needed to initialize swap
....

15、打出netstat -tan命令执行结果中以‘LISTEN’,后或跟空白字符结尾的行;

[[email protected] tuser1]# netstat -tan | grep -E "LISTEN[[:space:]]*$"
tcp        0      0 127.0.0.1:2208              0.0.0.0:*                   LISTEN      
tcp        0      0 0.0.0.0:111                 0.0.0.0:*                   LISTEN      
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      
tcp        0      0 127.0.0.1:631               0.0.0.0:*                   LISTEN      
tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN      
tcp        0      0 0.0.0.0:733                 0.0.0.0:*                   LISTEN      
tcp        0      0 127.0.0.1:2207              0.0.0.0:*                   LISTEN

16、添加用户bash, testbash, basher, nologin (此一个用户的shell为/sbin/nologin),而后找出当前系统上其用户名和默认shell相同的用户的信息;

[[email protected] ~]#  grep -E "^([[:alnum:]]+)\>.*\1$" /etc/passwd
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
bash:x:3004:3004::/home/bash:/bin/bash
nologin:x:3007:3007::/home/nologin:/sbin/nologin
[[email protected] ~]#
时间: 2024-08-10 02:11:06

linux基础 用户与组管理的相关文章

【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系统 用户和组管理类命令的使用方法

列出当前系统上所有已经登录的用户的用户名,注意:同一用户登录多次,则只显示一次即可. [[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基础(5)Linux的用户,组管理以及Linux的下的权限浅谈

Linux下的权限管理与用户跟组的概念是分不开的.简单来说,Linux下的文件有三种权限r w x 对于文件来说 r:可读,可以使用类似cat等命令查看文件内容: w:可写,可以编辑或删除此文件: x: 可执行,eXacutable,可以命令提示符下当作命令提交给内核运行: 对于目录来说: r: 可以对此目录执行ls以列出内部的所有文件 w: 可以在此目录创建文件: x: 可以使用cd切换进此目录,也可以使用ls -l查看内部文件的详细信息: 对于文件或者目录来说,权限按照文件的所有者可以划分为

Linux的用户和组管理

Linux是个多用户多任务的分时操作系统,越是对服务器安全性要求越高的服务器,越需要建立合理的用户权限等级制度和服务器操作规范. 在linux中主要是通过配置文件来查看和修改用户信息 关于用户的配置文件有四个. /etc/passwd /etc/shadow /ect/group /etc/gshadow /etc/passwd 记录了这个用户的一些基本属性 第1字段:用户名称 第2字段:密码标识(表示有密码,会去/etc/shadow下调用) 第3字段:UID 0  超级用户 1-499  系

Linux基础--用户与组.txt

1. 创建组 增加oinstall组,指定组ID. [[email protected] ~]# groupadd -g 1023 oinstall 增加oper系统组. [[email protected] ~]# groupadd -r oper 2. 删除组 [[email protected] ~]# groupdel oper 3. 修改组 修改oinstall组的组ID为1024 [[email protected] ~]# groupmod -g 1024 oinstall 修改o

Linux之用户、组管理

Linux系统是一个多用户多任务的分时操作系统.任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统.每个用户账号都拥有一个唯一的用户名和各自的口令.用户在登录时键入正确的用户名和口令后,就能够进入系统和自己的主目录. 用户账号的管理,主要有以下方面: 1.用户分类.基本信息.密码策略 2.用户组的管理   3.用户.组常用管理命令 用户分类 超级用户:拥有对系统的最高管理权限,默认是root用户. 普通用户:只能对自己目录下的文件进行访问和修改,具有登

Linux下用户和组管理

用户与组之间的关系是,组下面有若干个用户,每个用户必须从属于唯一一个组.组可以理解为权限的集合.用户管理的命令有:useradd, userdel, usermod, passwd, chsh, chfn, finger, id, chage.组管理的命令有:groupadd, groupdel, groupmod, gpasswd. (一)linux系统下用户角色 在linux系统下用户的角色不同,权限和所能完成的任务也不同,用户角色是通过UID来识别的,在linux下要注意root用户的UI

linux基础--用户和组

用户的基本信息:/etc/passwd 用户影子口令:/etc/shadow 组的基本信息:/etc/group 组的影子口令:/etc/gshadow /etc/passwd文件解释 [[email protected] ~]# 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

【Linux下用户和组管理】 &#182586;

原文: http://blog.gqylpy.com/gqy/315 "> ##### 创建用户--useradd . 命令格式:useradd [参数] 用户名 useradd也可写成adduser . 参数如下 -u 指定UID号 -d 指定宿主目录 -e 指定生效时间 -g 指定基本组 -G 指定附加组 -M 不建立宿主目录 -s 指定shell -r 用于删除用户时,同时删除宿主目录 -f 一般用于强制删除用户 . 补充命令: echo '密码' | passwd --stdin