Linux基础知识整理[8]——账号管理

账号管理

用户ID与群组ID

Linux并不认识账号名称,它认识的其实是账号ID。即Linux只认识代表身份的号码,而对应的号码与账号则是记录在/etc/passwd中。

 

登入Linux主机

在输入账号与密码之后,Linux会:

①先查找/etc/passwd中是否有这个账号,如果没有则跳出,如果有则将该账号对应的UID(User ID)与GID(Group ID)读出来。另外,该账号的根目录与shell设定也一并读出。

②然后核对密码表。这时Linux会进入/etc/shadow中找出对应的账号与UID,然后核对您刚刚输入的密码与其密码是否相符。

③一切妥当之后,进入Shell。

 

UID、GID、SUID 与SGID

每个文件都会有所谓的拥有者ID与拥有群组ID,亦即UID与GID,然后系统依据/etc/passwd的内容,将该文件的拥有者与群组名称、使用账号的形式显示出来; UID为0时,就是root。

/etc/passwd 文件:在这个文件中,每一行代表一个账号,有几行就代表在您的系统中有几个账号。

/etc/shadow 文件:存放账号对应的密码。

/etc/group:这个文件可以让您直接将账号所要支持的群组加进来。

/etc/gshadow:存放群组密码。

 

增加用户的一般步骤

添加群组:groupadd

[root @test /root ]# groupadd [-g GID]groupname

-g GID:自行设定GID的大小

 [root @test /root]# groupadd -g 55testing <==设定一个群组,GID为55

也可以直接修改/etc/group与/etc/gshadow这两个文件,根本不需要使用这个指令,使用vi修改上面两个文件更简单。如果要新增的用户所在群组并不存在于系统中,那么在增加用户账号之前,必须先新增群组。

删除群组:groupdel

[root @test /root ]# groupdel groupname

[root @test /root]# groupdel testing

在删除群组之前,请先将该群组的Primary用户删除。Primary就是/etc/passwd中其GID设定为这个群组的GID

的用户。

添加用户:useradd

[root @test /root ]# useradd [-u UID] [-gGID] [-d HOME] [-mM] [-s shell] username

-u :直接给出一个UID

-g :直接给出一个GID(此GID必须已经存在于/etc/group中)

-d :直接将其根目录指向已经存在的目录(系统不会再建立)

-M :不建立根目录

-s :定义其使用的shell

 [root @test /root]# useradd testing

直接以默认数据建立一个名为testing的账号

[root @test /root]# useradd -u 720 -g 100-M -s /bin/bash testing

以自己的设定建立账号

删除用户:userdel

[root @test /root ]# userdel [-r] username

-r :将该账号的[home directory]与[/var/spool/mail/username]一并删除

 [root @test /root]# userdel testing

只删除/etc/passwd与/etc/shadow中该账号的内容

[root @test /root]# userdel -r testing

连同该账号的/home/testing与/var/spool/mail/testing一起删除

 

chsh

[root @test /root ]# chsh [-l] [-sshellname]

-l :列出当前机器上能用的shell名称

-s :将当前的shell变为shellname

 [test @test /root]# chsh -l <==列出本机上所有能用的shell名称

/bin/sh

/bin/bash

/bin/ash

/bin/bsh

/bin/csh

[test @test /root]# chsh -s /bin/csh <==test用户自行改变自己的默认shell

 

密码管理与设定:passwd

root可以设定任何样式的密码,而且,root可以帮助user设定他们的密码,而user仅能修改自己的密码。修改密码使用passwd这个命令。passwd必须具有SUID才能让一般用户修改其密码。

[root @test /root]# passwd [username]

[test @test /root]# passwd <==一般用户自行修改密码

[root @test /root]# passwd test <==root帮助修改密码

Changing password for user test

New password: <==输入密码

BAD PASSWORD: it is based on a dictionaryword

Retype new password: <==再次输入

passwd: all authentication tokens updated successfully

 

用户身份切换

将一般用户变成root:

     ①以su直接将身份变成root。这个指令需要root的密码,也就是说,如果您要以su变成root,您的一般用户必须有root的密码。

     [root@test /root ]# su

     [test@testtest]$ su

    Password:<==输入root的密码

    [root@testtest]# <==身份变成root

    虽然您已经是root,但是您的环境还是属于当初登入的那个用户。例如,我以test登入Linux,再以su切换身份成为root,但是我的mail,PATH及其他相关的环境变量,都还是test这个身份的。单纯使用su变换成root身份,最大的好处是可以直接输入我们惯用的指令

     ②如果多人同时管理一台主机,那么,root的密码就有很多人知道了,这样不好。所以,不想将root的密码透露出去,可以使用sudo。

         [root@test /root ]# sudo[-u username] [command]

     -u :将身份变成username的身份

    [test@test test]$ sudo mkdir /root/testing

    Password:<==输入test的密码

    [root@testtest]# sudo -u test touch test

    root可以执行test用户的指令,建立test的文件

         不需要root的密码仍可以执行root的工具,这时就可以使用sudo。由于执行root身份的工作时,输入的密码是用户的密码,而不是root的密码,所以可以减少root密码外泄的可能性。

 

用户查询

可以直接到/etc/passwd及/etc/group中查看,但还有更简单的方法,就是使用简单的指令工具:

     ①id 查询用户的UID,GID及所拥有的群组;

     [root@test root]# id [username]

    [root @test root]# id

    uid=0(root)gid=0(root) groups=0(root)

    [root@test root]# id test

    uid=501(test)gid=501(test) groups=501(test)

     ②groups 查询用户能够支持的群组:直接输入groups就可以显示当前用户所属的群组,Primary与其他相关群组都会显示出来。

     ③finger 查询用户的一些相关信息,如电话号码等。

         [root@test root]# finger [-s] username

     -s :完整列出

 


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值