Linux的用户管理基本指令

用户登录和注销


基本介绍:
        1) 登录时尽量少用root帐号登录,因为它是系统管理员,最大的权限,避免操作失误。可以利用普通用户登录,登录后再用‘su - 用户名’命令来切换成系统管理员身份。(确实需要权限高的操作切换到root即可,不带-的话用户名要加 ' ' )
        2) 在提示符下输入 logout 即可注销用户【不同的shell 可能不同(logout  exit)】

使用细节:
        1) logout 注销指令在图形运行级别无效,在运行级别 3下有效.(通过远程登录是有效的

 


用户管理

 Linux系统是一个多用户多任务的操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。


1、添加用户

useradd   用户名 

1)案例1:添加一个用户 xiaoming

useradd  xiaoming

细节说明

1)当创建用户成功后,会自动创建和用户同名的家目录 【/home/xiaoming】。

2)也可以通过 useradd -d  /home/目录   新的用户名,给新创建的用户指定家目录。

创建指定家目录skyorder2用户名为jack2,切换到jack2       useradd -d  /home/skyorder2  jack2

  

 2、指定/修改密码(Password 密码)

基本语法

passwd    用户名    // 如果没有带用户名,则是给当前登录的用户修改密码

应用案例
1) 给xiaoming  指定密码

2) 给当前登录的用户(xiaoming)修改密码

 

3、删除用户(delete 删除)

基本语法

userdel   用户名

应用案例
1、删除用户xiaoming,但是要保留家目录  userdel 用户名 //userdel xiaoming  家目录没有被删除了
2、删除用户以及用户主目录   userdel -r 用户名// userdel –r xiaoming 家目录被删除了 (remove 移除)
细节说明
是否保留家目录的讨论? [一般保留] 假如xiaoming离职了,但是他的家目录还有很多开发的东西,我们不会删除这些东西。

 4、查询用户信息指令

基本语法

 id  用户名

应用实例 案例1:请查询root  信息

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

uid   用户的id号

gid   用户所在组的那个组的id号

组    所在组的组名称

细节说明

1) 当用户不存在时,返回无此用户。

5、切换用户

介绍

在操作Linux中,如果当前用户的权限不够,可以通过 su - 指令,切换到高权限用户,比如root 。

基本语法

su  –  切换用户名 
su '用户名'

注:有没有 - 的区别

  • 没有 -   这种方式切换仅仅是切换了权限,环境没有变,你之前在那个目录切换后还是在那个目录。而且你前后的环境变量是一样的(echo $PATH 前面一样)。 
  • 有 -  切换到切换用户的根目录

 

应用实例

创建一个用户milan ,指定密码,然后切换到 milan。

细节说明

1)从权限高的用户切换到权限低的用户,不需要输入密码,反之需要。

2)当需要返回到原来用户时,使用exit指令。

3)如果 su – 没有带用户名,则默认切换到root用户。

 6、查看当前用户/登录用户

基本语法

whoami/ who am I

who whoami who am i的区别

在Linux系统命令行操作来回切换用户多次,很容易混淆现在处于什么用户下,当以root身份登录后切换至xiaofeng用户状态下。

who 命令:

  • 第一列显示用户名称 
  • 第二列显示用户连接方式。Tty意味着用户直接连接到电脑上,而pts意味着远程登录。  
  • 第三、四列分别显示日期和时间  
  • 第五列显示用户登录IP地址

 总结:   

       i) whoami显示当前所处的用户

       ii)  who am i是登录的用户

       iii)  who 显示当前所处的用户和登录的用户

使用whoami命令显示的是当前“操作用户”的用户名。而who am i显示的是“登录用户”的用户名。要解释这个现象需要引入linux中的两个概念——实际用户(UID,即user id)和有效用户(EUID,即effective user id)。

实际用户是指用户登录时所使用的用户,所以在整个登录会话中,实际用户是不会变化的。而有效用户是指当前执行操作的用户,这个是能够利用su和sudo命令进行任意切换的。一般情况下,实际用户和有效用户是一样的,只有发生用户身份切换的时候,会发生差异。所以who am i显示的是实际用户的用户名,即用户登陆时候的用户ID,相当于who -m,而whoami显示的是有效用户的ID即EUID。

 

7、用户组

介绍

类似于角色,系统可以对有共性的多个用户进行统一的管理。

i) 新增组

指令

groupadd 组名

   1)案例演示: 增加 用户组 wudang(武当) groupadd wudang

增加用户时直接加上组

指令

useradd  –g 用户组 用户名 

 1)案例演示:增加一个用户 zwj, 直接将他指定到 wudang        useradd -g wudang zwj

通过id zwj可以看到zwj在wudang这个组里面了。

ii) 删除组

指令(基本语法)     

groupdel 组名 

案例演示

 1)案例演示:删除组wudang            groupdel wudang    (删除组要保证里面没有元素了)

 

 

iii) 修改用户的组(modify 修改)

指令(基本语法)

 usermod  –g 新的组名 用户名 

 1)案例演示:创建一个shaolin组,将zwj 用户修改到shaolin(少林)   usermod -g shaolin zwj

 

8、用户和组的相关文件

/etc/passwd 文件     

用户(user)的配置文件,记录用户的各种信息

每行的含义:用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell

 

 zwj:x:509:510::/home/zwj:/bin/bash  

 zwj是用户名x是密码(加密了的,真正的密码在 /etc/shadow 文件 里面)、509用户的id(用户标识符)、510 组id、/home/zwj 用户的家目录、/bin/bash  用户所对应的shell

 /etc/shadow 文件 (用户的密码保存在这个里面,加密了的看不懂)

口令的配置文件

每行的含义:登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:保留 [图]

/etc/group 文件     

组(group)的配置文件,记录Linux包含的组的信息

每行含义:组名:口令:组标识号:组内用户列表(打开看不到)

 shaolin:x:510:

 shaolin 组名、x 组的口令(看不到)、510 组的id(组的标识符)、:后面的表示 有哪些用户属于这个组(看不到)

 


sudo及其配置文件 /etc/sudoers  的详细配置

让普通用户拥有 root 权限演示:

(1)、切换到 root 用户

(2)、修改  /etc/sudoer 文件  vi  /etc/sudoers

(3)、找到 Allow root to run any commands anywhere 这一行。

 

a) sudo介绍

 sudo是linux下常用的允许普通用户使用超级用户权限的工具,允许系统管理员让普通用户执行一些或者全部的 root 命令,如halt,reboot,su等等。这样不仅减少了root用户的登陆 和管理时间,同样也提高了安全性。Sudo不是对shell的一个代替,它是面向每个命令的。

b) sudo 特点

  § sudo能够限制用户只在某台主机上运行某些命令。

  § sudo提供了丰富的日志,详细地记录了每个用户干了什么。它能够将日志传到中心主机或者日志服务器。

  § sudo使用时间戳文件来执行类似的“检票”系统。当用户调用sudo并且输入它的密码时,用户获得了一张存活期为5分钟的票(这个值可以在编译的时候改变)。

  § sudo的配置文件是sudoers文件,它允许系统管理员集中的管理用户的使用权限和使用的主机。它所存放的位置默认是在/etc/sudoers,属性必须为0411。

c) sudo的工作过程如下

  1,当用户执行sudo时,系统会主动寻找/etc/sudoers文件,判断该用户是否有执行sudo的权限

  2,确认用户具有可执行sudo的权限后,让用户输入用户自己的密码确认

  3,若密码输入成功,则开始执行sudo后续的命令

  4,root执行sudo时不需要输入密码(eudoers文件中有配置root ALL=(ALL) ALL这样一条规则)

  5,若欲切换的身份与执行者的身份相同,也不需要输入密码

d) 配置文件/etc/sudoers

sudo 它的主要配置文件是 sudoers , linux下通常在/etc目录下,如果是 solaris,缺省不装sudo的,编译安装后通常在安装目录的 etc 目录下,不过不管 sudoers 文件在哪儿,sudo都提供了一个编辑该文件的命令:visudo来对该文件进行修改。强烈推荐使用该命令修改 sudoers,因为它会帮你校验文件配置是否正确,如果不正确,在保存退出时就会提示你哪段配置出错的。

visudo 使用vi打开 /etc/sudoers 文件,但是在保存退出时,visudo会检查内部语法,避免用户输入错误信息。

[root@hadoop100 opt]# visudo   

如何配置sudoers:

## Sudoers allows particular users to run various commands as
## the root user, without needing the root password.
##
## Examples are provided at the bottom of the file for collections
## of related commands, which can then be delegated out to particular
## users or groups.
## 
## This file must be edited with the 'visudo' command.

## Host Aliases
## Groups of machines. You may prefer to use hostnames (perhaps using 
## wildcards for entire domains) or IP addresses instead.
# Host_Alias     FILESERVERS = fs1, fs2
# Host_Alias     MAILSERVERS = smtp, smtp2

## User Aliases
## These aren't often necessary, as you can use regular groups
## (ie, from files, LDAP, NIS, etc) in this file - just use %groupname 
## rather than USERALIAS
# User_Alias ADMINS = jsmith, mikem


## Command Aliases
## These are groups of related commands...

## Networking
# Cmnd_Alias NETWORKING = /sbin/route, /sbin/ifconfig, /bin/ping, /sbin/dhclient, /usr/bin/net, /sbin/iptables, /usr/bin/rfcomm, /usr/bin/wvdial, /sbin/iwconfig, /sbin/mii-tool

## Installation and management of software
# Cmnd_Alias SOFTWARE = /bin/rpm, /usr/bin/up2date, /usr/bin/yum

## Services
# Cmnd_Alias SERVICES = /sbin/service, /sbin/chkconfig


## Updating the locate database
# Cmnd_Alias LOCATE = /usr/bin/updatedb

## Storage
# Cmnd_Alias STORAGE = /sbin/fdisk, /sbin/sfdisk, /sbin/parted, /sbin/partprobe, /bin/mount, /bin/umount

## Delegating permissions
# Cmnd_Alias DELEGATING = /usr/sbin/visudo, /bin/chown, /bin/chmod, /bin/chgrp 

## Processes
# Cmnd_Alias PROCESSES = /bin/nice, /bin/kill, /usr/bin/kill, /usr/bin/killall

## Drivers
# Cmnd_Alias DRIVERS = /sbin/modprobe

# Defaults specification

#
# Refuse to run if unable to disable echo on the tty.
#
Defaults   !visiblepw

#
# Preserving HOME has security implications since many programs
# use it when searching for configuration files. Note that HOME
# is already set when the the env_reset option is enabled, so
# this option is only effective for configurations where either
# env_reset is disabled or HOME is present in the env_keep list.
#
Defaults    always_set_home

Defaults    env_reset
Defaults    env_keep =  "COLORS DISPLAY HOSTNAME HISTSIZE INPUTRC KDEDIR LS_COLORS"
Defaults    env_keep += "MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE"
Defaults    env_keep += "LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES"
Defaults    env_keep += "LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE"
Defaults    env_keep += "LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY"

#
# Adding HOME to env_keep may enable a user to run unrestricted
# commands via sudo.
#
# Defaults   env_keep += "HOME"

Defaults    secure_path = /sbin:/bin:/usr/sbin:/usr/bin

## Next comes the main part: which users can run what software on 
## which machines (the sudoers file can be shared between multiple
## systems).
## Syntax:
##
##      user    MACHINE=COMMANDS
##
## The COMMANDS section may have other options added to it.
##
## Allow root to run any commands anywhere 
root    ALL=(ALL)       ALL
## Allows members of the 'sys' group to run networking, software, 
## service management apps and more.
# %sys ALL = NETWORKING, SOFTWARE, SERVICES, STORAGE, DELEGATING, PROCESSES, LOCATE, DRIVERS

## Allows people in group wheel to run all commands
# %wheel        ALL=(ALL)       ALL

## Same thing without a password
# %wheel        ALL=(ALL)       NOPASSWD: ALL

## Allows members of the users group to mount and unmount the 
## cdrom as root
# %users  ALL=/sbin/mount /mnt/cdrom, /sbin/umount /mnt/cdrom

## Allows members of the users group to shutdown this system
# %users  localhost=/sbin/shutdown -h now

## Read drop-in files from /etc/sudoers.d (the # here does not mean a comment)
#includedir /etc/sudoers.d


## Sudoers allows particular users to run various commands as  
## the root user, without needing the root password.  
## 该文件允许特定用户像root用户一样使用各种各样的命令,而不需要root用户的密码  
##  
## Examples are provided at the bottom of the file for collections  
## of related commands, which can then be delegated out to particular  
## users or groups.  
## 在文件的底部提供了很多相关命令的示例以供选择,这些示例都可以被特定用户或  
## 用户组所使用   
##  
## This file must be edited with the 'visudo' command.  
## 该文件必须使用"visudo"命令编辑  
  
## Host Aliases  
## Groups of machines. You may prefer to use hostnames (perhaps using   
## wildcards for entire domains) or IP addresses instead.  
## 对于一组服务器,你可能会更喜欢使用主机名(可能是全域名的通配符)  
## 、或IP地址,这时可以配置主机别名  
# Host_Alias     FILESERVERS = fs1, fs2  
# Host_Alias     MAILSERVERS = smtp, smtp2  
  
## User Aliases  
## These aren't often necessary, as you can use regular groups  
## (ie, from files, LDAP, NIS, etc) in this file - just use %groupname   
## rather than USERALIAS  
## 这并不很常用,因为你可以通过使用组来代替一组用户的别名  
# User_Alias ADMINS = jsmith, mikem  
  
## Command Aliases  
## These are groups of related commands...  
## 指定一系列相互关联的命令(当然可以是一个)的别名,通过赋予该别名sudo权限,  
## 可以通过sudo调用所有别名包含的命令,下面是一些示例  
  
## Networking 网络操作相关命令别名  
# Cmnd_Alias NETWORKING = /sbin/route, /sbin/ifconfig, /bin/ping, /sbin/dhclient  
, /usr/bin/net, /sbin/iptables, /usr/bin/rfcomm, /usr/bin/wvdial, /sbin/iwconfig  
, /sbin/mii-tool  
  
## Installation and management of software 软件安装管理相关命令别名  
# Cmnd_Alias SOFTWARE = /bin/rpm, /usr/bin/up2date, /usr/bin/yum  
  
## Services 服务相关命令别名  
# Cmnd_Alias SERVICES = /sbin/service, /sbin/chkconfig  
  
## Updating the locate database 本地数据库升级命令别名  
# Cmnd_Alias LOCATE = /usr/bin/updatedb  
  
## Storage 磁盘操作相关命令别名  
# Cmnd_Alias STORAGE = /sbin/fdisk, /sbin/sfdisk, /sbin/parted, /sbin/partprobe  
, /bin/mount, /bin/umount  
  
## Delegating permissions 代理权限相关命令别名  
# Cmnd_Alias DELEGATING = /usr/sbin/visudo, /bin/chown, /bin/chmod, /bin/chgrp   
  
## Processes 进程相关命令别名  
# Cmnd_Alias PROCESSES = /bin/nice, /bin/kill, /usr/bin/kill, /usr/bin/killall  
  
## Drivers 驱动命令别名  
# Cmnd_Alias DRIVERS = /sbin/modprobe  
  
# Defaults specification  
  
#  
# Disable "ssh hostname sudo <cmd>", because it will show the password in clear.   
#         You have to run "ssh -t hostname sudo <cmd>".  
# 一些环境变量的相关配置,具体情况可见man soduers  
Defaults    requiretty  
  
Defaults    env_reset  
Defaults    env_keep =  "COLORS DISPLAY HOSTNAME HISTSIZE INPUTRC KDEDIR LS_COLORS"  
Defaults    env_keep += "MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE"  
Defaults    env_keep += "LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES"  
Defaults    env_keep += "LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE"  
Defaults    env_keep += "LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY"  
  
Defaults    secure_path = /sbin:/bin:/usr/sbin:/usr/bin  
  
## Next comes the main part: which users can run what software on   
## which machines (the sudoers file can be shared between multiple  
## systems).  
## 下面是规则配置:什么用户在哪台服务器上可以执行哪些命令(sudoers文件可以在多个系统上共享)  
## Syntax(语法):  
##  
##  user    MACHINE=COMMANDS 用户 登录的主机=(可以变换的身份) 可以执行的命令  
##  
## The COMMANDS section may have other options added to it.  
## 命令部分可以附带一些其它的选项  
##  
## Allow root to run any commands anywhere   
## 允许root用户执行任意路径下的任意命令  
root    ALL=(ALL)   ALL  
  
## Allows members of the 'sys' group to run networking, software,   
## service management apps and more.  
## 允许sys中户组中的用户使用NETWORKING等所有别名中配置的命令  
# %sys ALL = NETWORKING, SOFTWARE, SERVICES, STORAGE, DELEGATING, PROCESSES, LOCATE  
, DRIVERS  
  
## Allows people in group wheel to run all commands  
## 允许wheel用户组中的用户执行所有命令  
%wheel  ALL=(ALL)   ALL  
  
## Same thing without a password  
## 允许wheel用户组中的用户在不输入该用户的密码的情况下使用所有命令  
# %wheel    ALL=(ALL)   NOPASSWD: ALL  
  
## Allows members of the users group to mount and unmount the   
## cdrom as root  
## 允许users用户组中的用户像root用户一样使用mount、unmount、chrom命令  
# %users  ALL=/sbin/mount /mnt/cdrom, /sbin/umount /mnt/cdrom  
  
## Allows members of the users group to shutdown this system  
## 允许users用户组中的用户关闭localhost这台服务器  
# %users  localhost=/sbin/shutdown -h now  
  
## Read drop-in files from /etc/sudoers.d (the # here does not mean a comment)  
## 读取放置在/etc/sudoers.d/文件夹中的文件(此处的#不意味着这是一个声明)  
#includedir /etc/sudoers.d  

 

https://segmentfault.com/a/1190000007394449?utm_source=tag-newest#articleHeader0

  • 6
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值