美文网首页测试人学linux
《Linux从入门到精通》之用户与用户组管理、进程管理

《Linux从入门到精通》之用户与用户组管理、进程管理

作者: Tomandy | 来源:发表于2018-03-16 17:37 被阅读12次

    添加用户

    linux为每一个用户启动一个进程,然后由这个进程接受用户的各种请求,在创建用户时,需限定其权限。把几个用户归在一起,这样的组称为“用户组”。
    默认情况下,不带-m参数的useradd命令不会为新用户建立主目录,这类用户可以登录到系统的shell,但是不能登录到图形界面。

    useradd.png
    用户列表.png
    Linux所作的一切最终都反应到配置文件中,所有的用户信息登记在/etc/passwd文件中,而/etc/shadow文件则保存着用户的登录密码。etc/group文件保存系统中的组信息。
    使用参数-g可以指定用户所属的组,如下建立用户tom,并指定属于tomgrp组,注意需先使用groupadd命令建立用户组。不带-g参数默认建立一个与用户名同名的组。
    useradd-g.png
    useradd -s用于指定用户登录所使用的shell。可以在/bin目录下找到特定的shell,常用的有BASH、SH等。如果不指定-s参数,默认使用SH登录系统。以下命令指定tom用户登录后使用bash作为shell。
    $useradd -s /bin/bash tom
    

    记录用户操作历史:history

    history命令仅在bash中适用,用户操作历史信息存放在用户主目录的.bash_history中,该文件默认可以存储1000条命令记录。

    history.png
    管理员需要查看用户的历史命令的话,可以切换到对应用户目录,然后查看.bash_history文件。

    删除用户:userdel

    userdel用于删除用户,该命令默认不会删除用户的主目录,除非加上-r选项。

    $userdel tom    //删除用户但不删除用户主目录
    
    $userdel -r tom //删除用户且删除用户主目录
    

    管理用户账号:usermod

    可以使用usermod命令修改已有的用户账户,常用选项如下表所示。

    选项 含义
    -d 修改用户主目录
    -e 修改账号的有效期限,以MM/DD/YY表示
    -g 修改用户所属组
    -l 修改用户名称
    -s 修改用户登录后所使用的shell

    以下命令将tom改名为mike,主目录改为/home/mike,并设置账号有效期至2018/12/31。

    usermod.png

    查看用户信息:id

    id命令用于查看用户的uid,gid及所属组。不加任何参数id命令显示当前用户的信息。

    id.png

    用户口令文件详解

    /etc/shadow存放用户口令,文件每一行代表一个用户,以冒号分隔每个字段。

    shadow文件.png
    以上各个字段的含义如下:
    • 用户名
    • 加密后的口令
    • 上次修改口令的日期
    • 两次口令之间的天数(最少)
    • 两次口令之间的天数(最多)
    • 提前多少天提醒用户修改口令
    • 在口令过期多少天后禁用该账号
    • 账号过期的日期
    • 保留

    在shadow文件中,绝对日期是从1970年1月1日至今的天数,一般使用usermod -e来设定过期字段。


    sudo 和su命令的区别

    不带任何参数的su命令会将用户提升至root权限,需提供root口令。通过su所获得特权一直持续到使用exit命令退出为止。Ubuntu不允许使用su。
    sudo 命令比 su 命令更安全. su 命令需要其他用户也知道 root 密码, 而 sudo 只需要配置 etc/sudoers 即可, 而且可以随时删除特定用户的权限,sudo命令使用的是当前用户的密码。
    sudo 仅仅是提高当前执行命令的权限. 而 su 命令可以执行 root 的所有权限. 所以在一定意义上讲, 使用su 命令是很危险的。


    监控进程:ps        top

    ps aux命令用于显示当前系统上运行的所有进程的信息。ps lax命令提供父进程ID和谦让度,但不会显示进程属主的用户名。

    ps-aux.png
    ps-lax.png
    top命令用于即时跟踪当前系统进程的情况,默认情况下每10s更新一次。
    top.png

    查看占用文件的进程:lsof

    lsof命令可以查看某个特定的文件被哪些进程使用。

    $lsof test.txt
    

    向进程发送信号:kill

    kill命令用于向进程发送一个信号,可以使用-l选项显示所有的信号及其编号。

    kill-l.png
    常用的信号有以下几个。
    信号编号 信号名 用途描述
    0 EXIT 程序退出时收到该信号
    1 HUP 挂起
    2 INT 中断
    3 QUIT 退出
    9 KILL 杀死
    11 SEGV 段错误
    15 TERM 软件终止

    默认情况下,kill命令向进程发送TERM信号。

    $kill 12345
    等价于
    $kill -TERM 12345
    

    kill发送的部分信号可以被程序捕捉,从而使命令失效,比如一个在一个shell脚本里加入 trap "" TERM ,可以用于忽略TERM信号。
    但KILL信号永远不能被程序捕捉,KILL可以在内核级别杀死一个进程。比如杀死id为12345的进程。

    $kill -KILL 12345
    或者
    
    $kill -9 12345
    

    调整进程优先级:nice renice

    通过nice命令的帮助,用户可以设置和改变进程的优先级。提高一个进程的优先级,内核会分配更多CPU时间片给这个进程。默认情况下,进程以0的优先级启动。进程优先级可以通过top命令显示的NI(nice value)列查看。进程优先级值的范围从-20到19。值越低,优先级越高。
    通过给定的优先值启动一个程序:nice <优先值> <进程名>
    renice命令类似nice命令,使用这个命令可以改变正在运行的进程优先值。用户只能改变属于他们自己的进程的优先级。
    renice -n -p - 改变指定进程的优先值。
    renice -u -g - 通过指定用户和组来改变进程优先值。

    相关文章

      网友评论

        本文标题:《Linux从入门到精通》之用户与用户组管理、进程管理

        本文链接:https://www.haomeiwen.com/subject/remlqftx.html