接51CTO:13 用户组和权限管理3

用户组和权限管理3

一、杂项知识整理

1、硬链接:写源文件可以是相对地址,相对于链接文件。例如

[root@localhost testdir]# ln ../etc/fstab aaa
ln: 无法创建硬链接"aaa" => "../etc/fstab": 无效的跨设备连接
[root@localhost testdir]# ln ../etc/fstab /tmp/aaa

2、cp -r /etc/skel/. /testdir/user1 复制文件夹内的所有文件而不复制..。如果用[root@localhost user]# cp -r /testdir/user.dir/.[^.]*  /tmp/user1,其目标只能是存在的并且只能复制隐藏文件。

3、adduser是useradd的软链接:

[root@localhost default]# ll `which useradd`
-rwxr-x---. 1 root root 114056 3月   6 2015 /usr/sbin/useradd
[root@localhost default]# ll `which adduser`
lrwxrwxrwx. 1 root root 7 7月  19 04:58 /usr/sbin/adduser -> useradd

4、组中有其它用户时删除无法删除组;

5、whoami查看的是当前用户是谁,而who am i查看的是谁在终端登录,即不管用su还是su -登录,只要root登录终端,who am i都显示root。

6、userdel命令:可以在/etc/login.defs文件中更改配置变量。

    -f 强制删除用户账号,即使用户仍然在登录,包括主目录和邮箱和同名的组

    -r 删除主目录和邮箱

7、id命令:查看用户相关信息:

    -u 查看UID

    -g 查看GID

    -G groups

    -n name

[root@localhost testdir]# id
uid=0(root) gid=0(root) 组=0(root) 环境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[root@localhost testdir]# id -G
0
[root@localhost testdir]# id -u
0

8、换个身份执行命令:su – user -c COMMAND

[root@localhost testdir]# su - user1 -c date
2016年 08月 03日 星期三 10:37:13 CST

9、chfn;chsh指定个人信息和指定shell:

[root@localhost ~]# chfn
Changing finger information for root.
名称 [root]: ^C
[root@localhost ~]# chsh
Changing shell for root.
New shell [/bin/bash]: ^C

10、groupadd

    -g 指定GID号

    -r 创建系统组

        centos7:ID<1000

    [root@localhost ~]# groupadd -r -g 589 servicetest    
    [root@localhost ~]# tail /etc/group
    harry:x:1009:
    sarah:x:1010:
    sales:x:3000:
    user1:x:2223:user1
    user2:x:2224:
    user3:x:2225:
    user4:x:2226:
    user5:x:2227:
    user6:x:2228:
    servicetest:x:589:

11、groupmod命令:-n 指定新名字 -g GID;

    groupdel删除组

    gpasswd 更改组密码

        -a USER 将user添加至指定组中

        -d USER 从指定组中移除用户user

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

    newgrp命令:临时切换基本组:如果用户本不属于此组,则需要组密码;如果没有设置密码则只有本组用户可以切换。

[user1@localhost ~]$ newgrp user3
密码:
无效的密码。
[user1@localhost ~]$ exit
登出
[root@localhost ~]# gpasswd user3
正在修改 user3 组的密码
新密码:
请重新输入新密码:
[root@localhost ~]# su - user1
上一次登录:三 8月  3 11:20:41 CST 2016pts/0 上
[user1@localhost ~]$ newgrp user3
密码:
[user1@localhost ~]$ groups
user3 user1

二、命令详解及事例

1、当需要同时创建多个用户时,useradd不能实现,其对象只能是一个,所以需要批量建立用户和创建密码:命令newusers和chpasswd,单独给一个用户设置密码也可以用echo user:PASSWD | chpasswd

    按格式新建一user个文件:格式为:用户:x:UID:GID:(注释或描述):/家目录(不存在目录):bash

[root@localhost testdir]# !cat
cat user
user1:x:2223:2223::/home/user1:/bin/bash
user2:x:2224:2224::/home/user2:/bin/bash
user3:x:2225:2225::/home/user3:/bin/bash
user4:x:2226:2226::/home/user4:/bin/bash
user5:x:2227:2227::/home/user5:/bin/bash
user6:x:2228:2228::/home/user6:/bin/bash
[root@localhost testdir]# newusers user

    按格式创建一个passwd文件,内容一一对应:格式为:用户:密码

[root@localhost user1]# cat /testdir/userpasswd 
user1:123456
user2:123456
user3:123456
user4:123456
user5:123456
user6:123456
[root@localhost user1]# cat /testdir/userpasswd | chpasswd

    完成后,将/etc/skel的隐藏文件复制到用户家目录并更改其权限,因为已经做过因此提示覆盖,最后便完成了创建批量用户,无家目录也可以登录但是无配置文件,邮件文件会在收到文件后自动生成,系统用户无家目录和邮箱

[root@localhost user1]# cp -rf /etc/skel/.[^.]* /home/user3
cp:是否覆盖"/home/user3/.bash_logout"? y
"/etc/skel/.bash_logout" -> "/home/user3/.bash_logout"
cp:是否覆盖"/home/user3/.bash_profile"? y
"/etc/skel/.bash_profile" -> "/home/user3/.bash_profile"
cp:是否覆盖"/home/user3/.bashrc"? y
"/etc/skel/.bashrc" -> "/home/user3/.bashrc"
cp:是否覆盖"/home/user3/.zshrc"? y
"/etc/skel/.zshrc" -> "/home/user3/.zshrc"
[root@localhost user1]# chown -R user4:user4 /home/user4
[root@localhost user1]# ll -a /home/user4
总用量 20
drwx------.  2 user4 user4   72 8月   2 01:41 .
drwxr-xr-x. 18 root  root  4096 8月   2 02:26 ..
-rw-r--r--.  1 user4 user4   18 8月   3 08:30 .bash_logout
-rw-r--r--.  1 user4 user4  193 8月   3 08:30 .bash_profile
-rw-r--r--.  1 user4 user4  231 8月   3 08:30 .bashrc
-rw-r--r--.  1 user4 user4  658 8月   3 08:30 .zshrc

2、chmod命令:见下篇

3、usermod命令:用户属性修改:

    -u UID 新UID

    -g GID 新基本组

    -a 添加附加组,只能和-G使用

    -G GROUP 新附加组,可以多个

        直接添加,原来的附加组将会被覆盖;若保留原有,则需要同时使用-a选项表示append;

        因此删除一个用户所有附加组有两种方法:直接使用-G覆盖;或者-G “”,但是两者还是有一些区别的。例如:

    [root@localhost testdir]# usermod  -aG user2,user3,user4 user1    
    [root@localhost testdir]# tail /etc/group
    natasha:x:1008:
    harry:x:1009:
    sarah:x:1010:
    sales:x:3000:
    user1:x:2223:
    user2:x:2224:user1
    user3:x:2225:user1
    user4:x:2226:user1
    [root@localhost testdir]# usermod -G "" user1
    [root@localhost testdir]# tail /etc/group
    natasha:x:1008:
    harry:x:1009:
    sarah:x:1010:
    sales:x:3000:
    user1:x:2223:
    user2:x:2224:
    user3:x:2225:
    user4:x:2226:
    user5:x:2227:
    user6:x:2228:
    [root@localhost testdir]# usermod -G user1 user1
    [root@localhost testdir]# tail /etc/group
    natasha:x:1008:
    harry:x:1009:
    sarah:x:1010:
    sales:x:3000:
    user1:x:2223:user1
    user2:x:2224:
    user3:x:2225:
    user4:x:2226:
    user5:x:2227:
    user6:x:2228:

    -s SHELL 新的默认shell

    -c “”  新的默认注释信息

    -d HOME 新家目录不会自动创建,原家目录中的文件不会同时移动至新的家目录;若要创建新家目录并移动原家目录数据,同时使用-m选项。

    -l login_name 新的名字

    -L 锁定用户,在/etc/shadow密码栏增加!

        一次只能设定一个!,解锁也解一个,而passwd锁定及解锁一次两个

    -U 解锁

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

    -f INACTIVE 设定非活动期限

4、chown命令:见下篇

5、passwd命令:修改指定用户的密码,仅root用户权限;或修改自己的密码:

    -l 锁定指定用户

    -u 解锁指定用户

    -e 强制用户下次登录修改密码:

[root@localhost ~]# passwd -e user3 
正在终止用户 user3 的密码。
passwd: 操作成功

    -n # 指定最短使用期限

    -x # 最大使用期限

    -w # 提前多少天开始警告

    -i # 非活动期限

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

[root@localhost ~]# echo "123456789" | passwd --stdin user5
更改用户 user5 的密码 。
passwd:所有的身份验证令牌已经成功更新。

三、课后链接及作业

见作业篇

原创文章,作者:SilencePavilion,如若转载,请注明出处:http://www.178linux.com/27869

(0)
SilencePavilionSilencePavilion
上一篇 2016-08-04 14:42
下一篇 2016-08-04 14:42

相关推荐

  • grep、正则表达式

    grep、正则表达式 grep:文本过滤(模式:pattern)工具 作用:文本搜索工具,根据用户指定的“模式”对目标文本逐行进行匹配检查;打印匹配到的行。 模式:由正则表达式字符及文本字符所编写的过滤条件。 正则表达式:由一类特殊字符及文本所编写的模式,其中有些字符不表示字符字面意义,而表示控制或通配的功能。 正则表达式分为两类:基本正则表达式、扩展正则表…

    Linux干货 2017-04-06
  • iptables/netfilter入门到进阶

    一、iptables/netfilter的简介: iptables:规则管理工具;该系统工具有利于在 Linux 系统上更好地控制 IP 信息包过滤和防火墙配置。防火墙在做信息包过滤决定时,有一套遵循和组成的规则,这些规则存储在专用的信息包过滤表中,而这些表集成在 Linux 内核中。在信息包过滤表中,规则被分组放在我们所谓的链(chain)中。而netfi…

    Linux干货 2017-05-03
  • bash脚本编程之数组、高级字符串处理、高级变量操作、用户环境配置

    概述:     承接之前脚本编程部分,本篇将介绍一下脚本编程基础语法的最后一部分内容,具体分为:         1、数组简介         2、高级字符串处…

    Linux干货 2016-08-24
  • 正则表达式及用户管理命令

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。 2、取出最后登录到当前系统的用户的相关信息。 3、取出当前系统上被用户当做其默认shell的最多的那个shell。 4、将/etc/passwd中的第三个字段数值最大的后10个用户的信息全部改为大写后保存至/tmp/maxuser.txt文件中。 6、列出/etc目录…

    2017-10-10
  • CentOS7下的网络配置管理

    一、让配置永久有效的办法:修改配置文件 与网卡相关(课配置网卡的IP,掩码,网关,DNS)     /etc/sysconfig/network-scripts/ifcfg-INTERFACE 字段解释: TYPE        &nbsp…

    Linux干货 2016-03-28
  • 一个PHP程序员学习运维的转型

         我是一位PHP开发工程师,平时负责前端、后端以及服务器端的工作,但是称不上是个牛逼的程序员。网上热烈讨论一则传闻,“全栈工程师”(Full Stack Engineer),要求应征者对开发堆栈的每个方面都有所掌握。那究竟何为 “全栈工程师”呢?从字面上来理解,全栈工程师必须熟悉开发堆栈的每一个层次,或者至少熟悉绝大多数…

    Linux干货 2017-04-02