Linux系统用户管理与文本处理

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

~]# who | cut -d’ ‘ -f1 | sort -u

2、取出最后登录到当前系统的用户的相关信息。

~]# who | sort -k 3 -r | head -n 1 | cut -d’ ‘ -f1 | id

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

cut -d: -f7 /etc/passwd | uniq -c | sort -n -k 1 | tail -1 | grep -o “[^[:space:]].*$” | cut -d ‘ ‘ -f2

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

sort -n -t : -k 3 /etc/passwd | tail -n 10 | tr ‘a-z’ ‘A-Z’ >/tmp/maxusers.txt

5、取出当前主机的IP地址。

ifconfig ens33 | grep “\<inet\>” | grep -o “[^[:space:]].*$” | cut -d’ ‘ -f2

6、列出/etc目录下所有以.conf结尾的文件的文件名,并将其名字转换为大写后保存至/etc/ect.conf文件中。

ls /etc/*.conf | tr ‘a-z’ ‘A-Z’ >/etc/etc.conf

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

ls -d /var/* |wc -l

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

sort -n -t : -k 3 /etc/group | head -10 | cut -d: -f1

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

cat /etc/fstab > /etc/etc.test

cat /etc/issue >> /etc/etc.test

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

(1)创建组distro,其GID为2016;

groupadd -g 2016 distro

(2)创建用户mandriva,其ID号为1005;基本组为distro;

useradd -u 1005 -g distro mandriva

(3)创建用户mageia,其ID号为1100,家目录为/home/linux;

useradd -u 1100 -d /home/linux mageia

(4)给用户mageia添加密码,密码为mageedu;

echo “mageedu” | passwd –stdin mageia

(5)删除mandriva,但保留其家目录;

userdel mandriva

(6)创建用户slackware,其ID号为2002,基本组为distro,附加组peguin;

useradd -u 2002 -g distro -G peguin slackware

(7)修改slackware的默认shell为/bin/tcsh

chsh -s /bin/tcsh slackware

(8)为用户slackware新增附加组admins;

usermod -a -G admins slackware

 

用户和组管理类命令主要有useradd,userdel,usermod,passwd,groupadd,groupdel, gpasswd,chsh,id ,su等。

 

groupadd:添加用户组

groupadd [options] group

-g GID : 指定GID,默认是上一个组的GID+1;

        -r:创建系统组;

 

groupmod:修改组属性

groupmod [options] GROUP

-g GID : 修改组ID

-n new name :修改组名:

 

groupdel:删除组

groupdel GROUP

 

useradd:添加用户或更新默认新用户信息

useradd [options] LOGIN

-u, –uid UID:指定UID

-g, –gid GID:指定基本组ID,此组得事先存在

-G,–groups GROUP1[,GROUP2,…[,GROUPN]]]:指明用户的附加组,多个组之间用逗号分隔

-c comment:指明注释信息

-d :以指定路径为用户家目录,通过复制/etc/skel此目录并重命名;指定的家目录路径如果事先存在,则不会为用户复制环境配置文件

-s, –shell SHELL:指定用户的默认shell,可用的所有shell存储在/etc/shells文件中

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

-m,–create_home:创建用户家目录

-M:不创建用户家目录

-D:显示用户创建时的默认信息

-D option:修改用户创建时的默认信息

 

usermod:修改用户属性

usermod [options] LOGIN

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

-g, –gid GROUP:修改用户所属的基本组;

-G, –groups GROUP1[,GROUP2,…[,GROUPN]]]:修改用户所属的附加组,原来的附加组会被覆盖;

-a, –append:与-G一同使用,用于为用户追加新的附加组

-c comment:修改注释信息

-d, –home Home_dir:修改用户家目录;用户原有的文件不会被移动至新位置

-m,–move-home:只能与-d选项一同使用,用于将原来的家目录移动为新的家目录;

-l, –login new_login:修改用户名

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

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

-U,–unlock:解锁用户密码,

 

userdel:删除用户

userdel [options] LOGIN

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

 

passwd:密码管理

passwd [-k] [-l] [-u [-f]] [-d] [-e] [-n mindays] [-x maxdays] [-w warndays] [-i inactivedays] [-S] [–stdin] [username]

(1)passwd:修改用户自己的密码

(2)passwd username:修改指定用户的密码,仅root有此权限

-l, -u:锁定和解锁用户

-d:删除用户密码

-e date:过期期限,日期

-i days:非活动期限;时间范围

-n days:最短使用期限

-x days:最长使用期限

-w days:警告期限

–stdin:

 

gpasswd:

gpasswd 【option】 group

-a username: 向组中添加用户

-d username:从组中移除用户

 

Chsh:修改用户默认登录shell

chsh [-s shell] [-l] [-u] [-v] [username]

-s:指定用户登录shell

-l:列出可以shell

-u:帮助

-v:显示版本信息

 

id:显示用户实际和有效的用户和组ID

id [OPTION]… [USER]

-u: 仅显示有效的UID

-g:仅显示用户的基本组ID

-G:显示用户所属的所有组ID

-n:显示名字而非ID;

 

su: switch user

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

su – username

su -l username

非登录式切换:不会读取目标用户的配置文件进行初始化

su username

 

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/102985

(0)
上一篇 2018-07-15 16:02
下一篇 2018-07-15 16:11

相关推荐

  • 第二周作业

    第二周

    Linux笔记 2018-05-20
  • vim文本编辑器及文本处理常用命令

    Vim是从 vi发展出来的一个文本编辑器。代码补全、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。

    2018-04-08
  • shell脚本基础知识

    1.shell脚本是一种非编译,弱类型的语言,解释型语言弱类型 不需要声明直接使用解释型 执行之时,不需编译直接执行 2.shell的作用:解释执行用户的命令;用户输入一条命令,shell就解释一条,交互式;用户事先写一个shell脚本(Script),其中有很多命令,让shell一次把这些命令执行完,而不用一条一条地敲命令,批处理(Batch ) 3.解释…

    2018-05-14
  • ansible进阶小技巧

    用ansible写playbook的朋友可能会发现,当配置工作很多时,如果在中间过程出错了,修改后想重新执行,前面的一大堆步骤让人感觉很烦躁。虽然提供了“retry”文件,但是却只是根据host来判断重新执行,仍然不够方便;又或者,中间的某些步骤特别耗时,比如下载一个很大的数据包,每次执行特别浪费时间,想要特别的跳过。怎么办?我猜你就是把不需要的部分给注释掉…

    Linux笔记 2018-06-03
  • 我的第一篇博客!

    大家好,我在178linux开博文了,欢迎大家斧正!

    Linux笔记 2018-05-02
  • 配置ntp时间服务器,任务计划

    手动配置ntp时间服务 centos6 vim /etc/chrony.conf 加入service   172.20.0.1  iburst  保存 ntpdate 172.20.0.1 iburst systemctl enable chronyd 设为开机启动 centos6 chkconfig ntpd on设置开机开启ntp服务 vim  /etc…

    Linux笔记 2018-05-06