精华内容
下载资源
问答
  • Linux用户和用户组管理命令

    千次阅读 2018-06-02 17:16:51
    如何来管理用户和用户组。...可以通过usermod 来修改登录名、用户的家目录等等 用户组管理相关命令groupadd 添加用户组groupdel 删...

    如何来管理用户和用户组。


    相关的管理命令汇总

    用户管理相关命令
    useradd        添加用户
    adduser        添加用户
    userdel         删除用户
    passwd         为用户设置密码
    usermod       修改用户命令,可以通过usermod 来修改登录名、用户的家目录等等

     

    用户组管理相关命令
    groupadd     添加用户组
    groupdel      删除用户组
    groupmod    修改用户组信息
    groups         显示用户所属的用户组
    newgrp        切换到相应用用户组


    大家看了这么多的命令,可能会很头晕,其实在日常使用和维护中,我们常用的并不是很多,下面我们就把他们重新拆分组合,让学习变的很容易。

     


    命令的具体使用
     

    1、增加新用户、编辑用户与删除用户

    相关命令:useradd, passwd, usermod, userdel

    新增用户useradd/adduser

    语法:useradd [options] LOGIN
    options有很多(可以用useradd –hlep 或者man useradd查看),我们简单介绍几个。


    -d 目录       指定用户主目录,(默认是在/home目录下创建和用户名一样的目录)
    -g 用户组    指定用户所属的用户组(主组)
    -G 用户组   指定用户所属的附加组(这些组必需事先已经增加过了或者是系统中已经存在)
    -s Shell      指定用户的登录Shell
    -u UID        指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号
    -c 描述        指定一段注释性描述
    -m              使用者目录若不存在则自动建立(默认选项)


    我们来看几个实例
    实例1,最简单的新增用户
    [root@yufei ~]# useradd opser_1
    [root@yufei ~]# passwd opser_1
    Changing password for user opser_1.
    New password:
    BAD PASSWORD: it is too simplistic/systematic
    BAD PASSWORD: is too simple
    Retype new password:
    passwd: all authentication tokens updated successfully.


    注:如果设置的密码过于简单的话,系统会给出上面的提示,其实密码已经设定了。这只是针对root来说的,如果是用户自己设置了过于简单的密码,系统是不会接收的。

    [root@yufei ~]# grep opser_1 /etc/passwd
    opser_1:x:501:501::/home/opser_1:/bin/bash

    用户和组的ID都是501,家目录和使用的SHELL都给出来了。注意,这两个ID可以是不同的。


    [root@yufei ~]# grep opser_1 /etc/shadow
    opser_1:$6$cIFPSKDr$rQV1fCHYfpUBSqgtpUGcO5A.Wp0feoaMxAQn9QgBWTW7outyIsSN6baVCxhlfAnCZD0GDfDWiaV/UWHFgKuqx/:14981:0:99999:7:::
    用户的密码和关于密码的一些限制也很明白(不明白看上面的例子)

    [root@yufei ~]# grep opser_1 /etc/group /etc/gshadow
    /etc/group:opser_1:x:501:
    /etc/gshadow:opser_1:!::

    我们可以看到,在建立用户的同时,也建立了一个和用户同名的用户组

    [root@yufei ~]# ls -a /home/opser_1/
    .  ..  .bash_logout  .bash_profile  .bashrc  .gnome2  .mozilla

     

    用户家目录下的内容
    [root@yufei ~]# ls -ld /home/opser_1/
    drwx——. 4 opser_1 opser_1 4096 Jan  7 14:41 /home/opser_1/ 

    实例2,新增用户,并设置UID、组以及附加组并指定一个不可登陆的SHELL
    [root@yufei ~]# groupadd -g 600 opser.org
    [root@yufei ~]# groupadd user_group
    [root@yufei ~]# tail -n 4 /etc/group
    yufei:x:500:
    opser_1:x:501:
    opser.org:x:600:
    user_group:x:601:

    我们看到,增加的第一个opser.org用户组的时候,我限制了他的GID是600,而第二个没有限制就变成了601了。
    [root@yufei ~]# useradd -g user_group -G opser.org -u 580 -s /sbin/nologin opser_2
    [root@yufei ~]# passwd opser_2
    Changing password for user opser_2.
    New password:
    BAD PASSWORD: it is too simplistic/systematic
    BAD PASSWORD: is too simple
    Retype new password:
    passwd: all authentication tokens updated successfully.

    我对增加的用户opser_2做了一些限制,而且也对他设置了与opser_1一样的密码(其实这个密码设置了也没有什么用,因为我后面限制了他所使用的SHELL是/sbin/nologin,同样是无法登陆系统),我们来对比
    opser_1与opser_2这两个用户的相关文件

    [root@yufei ~]# tail -n 2 /etc/passwd
    opser_1:x:501:501::/home/opser_1:/bin/bash
    opser_2:x:580:601::/home/opser_2:/sbin/nologin
    [root@yufei ~]# tail -n 2 /etc/shadow
    opser_1:$6$cIFPSKDr$rQV1fCHYfpUBSqgtpUGcO5A.Wp0feoaMxAQn9QgBWTW7outyIsSN6baVCxhlfAnCZD0GDfDWiaV/UWHFgKuqx/:14981:0:99999:7:::
    opser_2:$6$VZTnZmFj$hayn6ycBCy9Mnfpwi13pAUOquwOVTmC/NiUuBViMnCp4PhowNBeYuFsYZGe3flfYhH2GVJhimbDF5o9pn6E5h0:14981:0:99999:7:::
    [root@yufei ~]# tail -n 2 /etc/group
    opser.org:x:600:opser_2
    user_group:x:601:

    注:
    1、opser_1和opser_2这两个用户虽然密码都是一样,但经过加密后,在shadow中显示的依然是不同的。
    2、opser_2这个用户的UID和GID不再是用系统默认的,而是我们指定的。
    3、opser_2他的主组的GID是601,也就是user_gruop,同时在opser.org这个组中,也有opser_2这个成员。
    4、opser_2这个用户虽然指定了SHELL,但这个SHELL是个特殊的SHELL,是不能登陆系统的。这个(/sbin/nologin)SHELL一般是在增加系统帐户的时候常用。
    5、在建立用户的时候会以最后建立的用户UID为参考。如opser_2的UID是580,那么再建立一个用户的时候,就变成581了,而502~579这些就没有用户在使用,那么我想从503开始的话,要怎么来实现?可以通过加上-r参数或者是自己指定。
    关于其他的参数,请各位看官自己看帮助来研究。


    和用户相关的其他调用文件


    通过上面的两个例子,有没有朋友会有这样的疑问,在增加用户的时候,家目录里面的文件是从哪里来的?UID和GID参考了什么?还有shell是根据什么来的?

    想知道这些问题,可以用man useradd来查看,你会发现,在这个帮助文件中,会有FILES那一段,除了我们上一节讲的四个文件外,还有

    /etc/default/useradd
               Default values for account creation.

    /etc/skel/
               Directory containing default files.

    /etc/login.defs
               Shadow password suite configuration.


    看到了上面的这三个文件的说明,上面的问题是不是已经找到答案了!

    想看看是如何规划的,那么就打开文件看看吧。
    /etc/default/useradd 通过useradd 添加用户时的规则文件
    [root@yufei ~]# vim /etc/default/useradd
    # useradd defaults file

    GROUP=100                 #主组的GID也是从100开始的
    HOME=/home               #把用户的家目录建在/home中,这个目录也可以自己设定
    INACTIVE=-1                #是否启用密码过期后是否会失效,-1表示密码永远不会失效。如10,则代表过期10天后才失效。
    EXPIRE=                       #帐号终止日期,不设置表示不启用
    SHELL=/bin/bash          #所用SHELL的类型
    SKEL=/etc/skel              #用户家目录里面文件的参照位置。也就是说,当我们用adduser添加用户时,用户家目录下的文件,都是从这个目录中复制过去的;
    CREATE_MAIL_SPOOL=yes    #创建用户的邮件池。相当于一个用户的邮箱


    /etc/skel/ 增加用户时候,用户家目录下的文件来源。此目录下的文件都是隐藏文件。
    [root@yufei ~]# ls -la /etc/skel/
    total 36
    drwxr-xr-x.  4 root root  4096 Dec 15 22:41 .
    drwxr-xr-x. 96 root root 12288 Jan  7 13:40 ..
    -rw-r–r–.  1 root root    18 Jun 22  2010 .bash_logout
    -rw-r–r–.  1 root root   176 Jun 22  2010 .bash_profile
    -rw-r–r–.  1 root root   124 Jun 22  2010 .bashrc
    drwxr-xr-x.  2 root root  4096 Jul 14 23:55 .gnome2
    drwxr-xr-x.  4 root root  4096 Dec 15 22:35 .mozilla

    /etc/login.defs 创建用户时的一些规划。比如创建用户时,是否需要家目录,UID和GID的范围,用户的期限等等。
    [root@yufei ~]# vim /etc/login.defs
    MAIL_DIR        /var/spool/mail #创建用户时,要在目录/var/spool/mail中创建一个用户mail文件

    PASS_MAX_DAYS   99999        #用户的密码不过期最多的天数
    PASS_MIN_DAYS   0            #密码修改之间最小的天数
    PASS_MIN_LEN    5            #密码最小长度
    PASS_WARN_AGE   7            #警告时间

    UID_MIN                   500    #UID从500开始
    UID_MAX                 60000    #最大UID为60000

    GID_MIN                   500    #GID从500开始
    GID_MAX                 60000    #最大GID为60000

    CREATE_HOME     yes            #是否创用户家目录

    UMASK           077            #创建用户家目录时候的默认权限限制

    USERGROUPS_ENAB yes            #用userdel删除用户的时候,如果这个主组中没有其他用户,那么也把这个组给删除
    ENCRYPT_METHOD SHA512        #用户密码的加密方式为SHA512

     

    通过上面的讲解,我想你已经深入了解了在linux系统中增加用户的过程了吧,这个过程就是:

    在 /etc/passwd 里面建立一行与账号相关的数据,包括建立 UID/GID/家目录等;
    在 /etc/shadow 里面将此账号的密码相关参数填入,但是尚未有密码;
    在 /etc/group 里面加入一个与账号名称一模一样的组名;
    在 /home 底下建立一个与账号同名的目录作为用户家目录,且权限为 700
    从/etc/skel/中COPY相应的文件到用户的家目录
    最后通过passwd命令,把密码加密后写到/etc/shadow中

     

    用户密码设置

     

    上面我们着重讲了用户创建,没有太多的讲用户的密码设置。
    其实在Linux系统中,命令的作用就是改配置文件,而这个passwd命令就是把密码加密后写入/etc/shadow(二栏)中,我们也知道这个文件中的栏位有9栏,那么其它栏要如何通过passwd这个命令来改呢?
    看帮助吧

    passwd –help
    格式:passwd [OPTION...] <accountName>
    -l  :是Lock的意思,会将 /etc/shadow 第二栏最前面加上”!”使密码失效
    -u :与-l相对,是Unlock的意思
    -S :列出密码相关参数,即shadow文件的大部分信息
    -n :后面接天数,shadow的第4字段,不可修改密码天数
    -x :后面接天数,shadow的第5字段,多长时间内必须要修改密码
    -w :后面接天数,shadow的第6字段,密码过期前的警告天数
    -i  :后面接日期,shadow 的第7字段,密码失效日期


    这些大家自己来实验吧,我除了密码用passwd设置外,其它的相关限制,我更习惯直接在/etc/shadow中修改。
    还有一个和passwd相似的命令,那就是chage大家也是自己研究吧!


    在这里顺便也说一个技巧,就是我们常常会遇到这样一种情况:比如我下载了某个应用,但这个应该是人家集成好的,这时候别人会给你一个默认的用户和密码,第一次登陆的时候,只有重新设置密码后才登陆。其实这个功能的实现,就是改我们shadow中的第三栏,把这个数值改成0就OK了!有兴趣的朋友可以试试。

     

    编辑用户usermod

    新增用户已经搞定,但要是对用户的相关信息进行一下修改,除了通过改文件外,还有没有其他的方法了?当然有啊,命令啊,命令的最终目的也是改配置文件。那么下面就来看看如何通过usermod来修改用户的相关0信息。
    [root@yufei ~]# usermod -h
    Usage: usermod [options] LOGIN

    -c :后面接账号的说明,即/etc/passwd第五栏的说明栏,可以加入一些账号的说明
    -d :后面接账号的家目录,即修改/etc/passwd的第六栏
    -e :后面接日期,格式是YYYY-MM-DD也就是在/etc/shadow内的第八栏
    -f  :后面接天数,修改shadow的第七栏
    -g :后面接主群组,修改/etc/passwd的第四个字段,即是GID的字段
    -G:后面接附加群组,修改这个使用者能够支持的群组,修改的是/etc/group
    -a :与 -G 合用,可增加附加群组的支持而非设定
    -l  :后面接账号名称。修改账号名称,/etc/passwd的第一栏
    -s :后面接Shell的文件,例如/bin/bash或/bin/csh等等
    -u :后面接 UID 数字,修改用户的UID /etc/passwd第三栏
    -L :暂时将用户的密码冻结,让他无法登入。其实就是在/etc/shadow的密码栏前面加上了“!”
    -U:将/etc/shadow 密码栏的“!”去掉


    其实,这个usermod和useradd的用法非常相似,只是增加了用户锁定与解锁。
    我们看几个例子


    修改用户的说明信息
    [root@yufei ~]# grep opser_1 /etc/passwd
    opser_1:x:501:501::/home/opser_1:/bin/bash
    [root@yufei ~]# usermod -c “opser.org exmple” opser_1
    [root@yufei ~]# grep opser_1 /etc/passwd
    opser_1:x:501:501:opser.org exmple:/home/opser_1:/bin/bash


    设置用户的过期日期
    [root@yufei ~]# grep opser_1 /etc/shadow
    opser_1:$6$cIFPSKDr$rQV1fCHYfpUBSqgtpUGcO5A.Wp0feoaMxAQn9QgBWTW7outyIsSN6baVCxhlfAnCZD0GDfDWiaV/UWHFgKuqx/:14981:0:99999:7:::
    [root@yufei ~]# usermod -e “2011-02-01″ opser_1
    [root@yufei ~]# grep opser_1 /etc/shadow
    opser_1:$6$cIFPSKDr$rQV1fCHYfpUBSqgtpUGcO5A.Wp0feoaMxAQn9QgBWTW7outyIsSN6baVCxhlfAnCZD0GDfDWiaV/UWHFgKuqx/:14981:0:99999:7::15006:
    我们就简单的给大家介绍这两个参数,其他的自己研究吧!

     


    删除用户userdel


    这个命令很简单,
    [root@yufei ~]# userdel -h
    Usage: userdel [options] LOGIN
    -f :强制删除,包括用户的一切相关内容,这个参数是危险的参数,不建议大家使用。详细说明看MAN
    -r :删除用户的家目录和用户的邮件池
    其实这个-r参数就是删除用户的相关配置文件中的信息
    用户账号/密码相关参数:/etc/passwd, /etc/shadow
    用户相关参数:/etc/group, /etc/gshadow
    用户个人文件数据: /home/username, /var/spool/mail/username

    不给大家演示了,自己动手实践吧!

     

    注:
    1、userdel -r 这个命令使用的时候,一定要确认这个用户的所有数据真的不再使用了。
    2、建议在使用这个命令之前,查找出这个帐户的所有数据(find / -user username),确认后再进行操作。

     


    2、用户组管理

    这也和上面的用户管理差不多,只是修改的文件(/etc/group, /etc/gshadow)不同


    增加用户组groupadd

    [root@yufei ~]# groupadd -h
    Usage: groupadd [options] GROUP
    -g gid :设置用户组,并指定相应的GID
    -r :这个参数和我们的useradd -r 是一样的道理
    这个命令的使用,我们前面已经涉及到了,也很简单。
    [root@yufei ~]# tail -n 4 /etc/group /etc/gshadow
    ==> /etc/group <==
    yufei:x:500:
    opser_1:x:501:
    opser.org:x:600:
    user_group:x:601:

    ==> /etc/gshadow <==
    yufei:!!::
    opser_1:!::
    opser.org:!::
    user_group:!::

    [root@yufei ~]# groupadd new_group_1
    [root@yufei ~]# groupadd -r new_group_2
    [root@yufei ~]# tail -n 4 /etc/group /etc/gshadow
    ==> /etc/group <==
    opser.org:x:600:
    user_group:x:601:
    new_group_1:x:602:
    new_group_2:x:489:

    ==> /etc/gshadow <==
    opser.org:!::
    user_group:!::
    new_group_1:!::
    new_group_2:!::

     

    编辑用户组groupmod

    与usermod也是类似的
    [root@yufei ~]# groupmod -h
    Usage: groupmod [options] GROUP
    -g :修改既有的 GID 数字;
    -n :修改既有的组名


    看个例子
    将刚刚上个指令建立的new_group_2名称改为mygroup,GID为666
    [root@yufei ~]# groupmod -g 666 -n mygroup new_group_2
    [root@yufei ~]# tail -n 4 /etc/group /etc/gshadow
    ==> /etc/group <==
    opser.org:x:600:
    user_group:x:601:
    new_group_1:x:602:
    mygroup:x:666:

    ==> /etc/gshadow <==
    opser.org:!::
    user_group:!::
    new_group_1:!::
    mygroup:!::

    注:这个GID建议还是不要随意更改,防止造成系统的GID混乱。

     

    删除用户组groupdel

    这个命令更简单,没有任何的参数,后面直接跟上想删除的用户组名
    注:不能用groupdel -h 或 groupdel –help来查看帮助,只能用man groupdel

    [root@yufei ~]# tail -n 2 /etc/passwd /etc/shadow
    ==> /etc/passwd <==
    yufei:x:500:500:yufei:/home/yufei:/bin/bash
    opser_1:x:501:501:opser.org exmple:/home/opser_1:/bin/bash

    ==> /etc/shadow <==
    yufei:$6$VdpG9FMuvcR49tD2$zhfYkufmtPd5jjzYG/lSvErSWPusnrqv52ikQxsRs0sYCBwLOakw8v/cz3nksC6p7l8MhePXC7FCXDhv1YbTM/:14958:0:99999:7:::
    opser_1:$6$cIFPSKDr$rQV1fCHYfpUBSqgtpUGcO5A.Wp0feoaMxAQn9QgBWTW7outyIsSN6baVCxhlfAnCZD0GDfDWiaV/UWHFgKuqx/:14981:0:99999:7::15006:
    [root@yufei ~]# tail -n 5 /etc/group /etc/gshadow
    ==> /etc/group <==
    opser_1:x:501:
    opser.org:x:600:
    user_group:x:601:
    new_group_1:x:602:
    mygroup:x:666:

    ==> /etc/gshadow <==
    opser_1:!::
    opser.org:!::
    user_group:!::
    new_group_1:!::
    mygroup:!::

     

    我们把前面建立和几个用户组给删除
    [root@yufei ~]# groupdel mygroup
    [root@yufei ~]# groupdel new_group_1
    [root@yufei ~]# groupdel opser.org
    [root@yufei ~]# groupdel opser_1
    groupdel: cannot remove the primary group of user ‘opser_1′
    为什么删除不了opser_1用户组呢?因为这个组里面还有用户。所以在删除用户组前,一定要查看这个组中还有没有成员了。

    [root@yufei ~]# tail -n 3 /etc/group /etc/gshadow
    ==> /etc/group <==
    yufei:x:500:
    opser_1:x:501:
    user_group:x:601:

    ==> /etc/gshadow <==
    yufei:!!::
    opser_1:!::
    user_group:!::

     

    用户组的管理员设置gpasswd

    [root@yufei ~]# gpasswd
    Usage: gpasswd [option] GROUP
       :没有参数,设置用户组密码
    -a : 增加用户到用户组中
    -d :从用户组中删除用户
    -r :删除用户组的密码
    -M :设置用户组成员(多成员)
    -A :设置用户组管理员(列表)


    我们来看个例子
    先建立两个用户,并为其设置密码
    [root@yufei ~]# useradd test_user1
    [root@yufei ~]# passwd test_user1
    Changing password for user test_user1.
    New password:
    BAD PASSWORD: it is too simplistic/systematic
    BAD PASSWORD: is too simple
    Retype new password:
    passwd: all authentication tokens updated successfully.
    [root@yufei ~]# useradd test_user2
    [root@yufei ~]# passwd test_user2
    Changing password for user test_user2.
    New password:
    BAD PASSWORD: it is too simplistic/systematic
    BAD PASSWORD: is too simple
    Retype new password:
    passwd: all authentication tokens updated successfully.

     

    查看这两个用户的相关信息
    [root@yufei ~]# tail -n 2 /etc/passwd /etc/shadow
    ==> /etc/passwd <==
    test_user1:x:502:502::/home/test_user1:/bin/bash
    test_user2:x:503:503::/home/test_user2:/bin/bash

    ==> /etc/shadow <==
    test_user1:$6$EL8UBf7P$gZL3N9GJDL6JhBJnwTZYyiOO8d2zu7Ti9B5eDTP7Hb17AT6Xe4/BuiNVBszO/UoycYIBZZygIH3oA3aKDOSA11:14982:0:99999:7:::
    test_user2:$6$tTs0BG90$7LLaUwF9pP/g0h4/IPAwH1x4JE.rSXjYP/wbUq2kxPsXM4/7AaniQdi6G85QIfH6.cspo7OTutqPZblbRUUVT/:14982:0:99999:7:::


    查看系统中最后加入的用户组(说法有点牵强)
    [root@yufei ~]# tail -n 3 /etc/group /etc/gshadow
    ==> /etc/group <==
    user_group:x:601:
    test_user1:x:502:
    test_user2:x:503:

    ==> /etc/gshadow <==
    user_group:!::
    test_user1:!::
    test_user2:!::


    把test_user1、test_user2加到user_group组中
    [root@yufei ~]# gpasswd -a test_user1 user_group
    Adding user test_user1 to group user_group
    [root@yufei ~]# gpasswd -a test_user2 user_group
    Adding user test_user2 to group user_group
    [root@yufei ~]# tail -n 3 /etc/group /etc/gshadow

    ==> /etc/group <==
    user_group:x:601:test_user1,test_user2
    test_user1:x:502:
    test_user2:x:503:
    ==> /etc/gshadow <==
    user_group:!::test_user1,test_user2
    test_user1:!::
    test_user2:!::


    设置test_user1为user_group组的管理员
    [root@yufei ~]# gpasswd -A test_user1 user_group
    [root@yufei ~]# tail -n 3  /etc/gshadow
    user_group:!:test_user1:test_user1,test_user2
    test_user1:!::
    test_user2:!::
    注:这个用户组的管理员的作用就是,可以像root用户一样来管理用户组中其他成员。


    设置user_group的密码
    [root@yufei ~]# gpasswd user_group
    Changing the password for group user_group
    New Password:
    Re-enter new password:
    [root@yufei ~]# tail -n 3  /etc/gshadow
    user_group:$6$2UZWz/O32$vViBQd.Bu8y.RfUbH/9QFYxqN.t31u7r2PztjfysgnKsJ4SUFBvtc1qg7N89bqBRpqUG1fQNno5ij0ja4B/3M1:test_user1:test_user1,test_user2
    test_user1:!::
    test_user2:!::

     

    切换用户组newgrp

    该命令将当前用户切换到相应的用户组
    注:前提条件是这个用户组要是该用户的主组或附加组。

     

     

    如何在linux下使用userdel和 groupdel删除用户和用户组


    userdel很简单,只有一个参数可选 -r ;如果加参数-r ,表示在删除用户的同时,一并把用户的家目录及本地邮件存储的目录或文件也一同删除;比如我们现在有个用户murray,其家目录位于/var目录中,现在我们来删除这个用户

    userdel murray 注:删除用户murray,但不删除其家目录及文件;
    userdel -r murray 注:删除用户murray,其家目录及文件一并删除;

    警告: 请不要轻易用-r参数;他会删除用户的同时删除用户所有的文件和目录,切记;如果用户目录下有重要的文件,在删除前请备份;
    其实也有最简单的办法,但这种办法有点不安全,也就是直接在/etc/passwd中删除您想要删除用户的记录;但最好不要这样做,/etc/passwd 是极为重要的文件,可能您一不小心会操作失误;

    groupdel 是用来删除用户组的;
    语法格式:groupdel 用户组
    groupdel admin

     

     


    debian添加删除用户

     


    增加普通用户命令: 
    adduser abc

    passwd abc

    exit

    用abc登录

    /etc/passwd中保存了用户信息

    LINUX创建用户的命令 
    useradd -g test -d /home/test1 -s /etc/bash -m test1 
    注解:-g 所属组 -d 家目录 -s 所用的SHELL 
    删除用户命令 
    userdel -r test1 
    创建密码命令 
    passwd

    创建新用户

    useradd命令(也能够使用adduser)用来创建新的用户帐号,其命令格式如下: 
    表4—19 useradd命令常用选项
    常用现象
    意 义
    -d
    配置新用户的登陆目录
    -e
    配置新用户的停止日期,日期格式为MM/DD/YY
    -f
    帐户过期几日后永久停权。当值为0时帐号则立即被停权。而当值为-1时则关闭此功能。预设值为-1
    -g
    使新用户加入群组
    -G
    使新用户加入一个新组。每个群组使用逗号“,”隔开,不能够夹杂空白字 
    -s
    指定新用户的登陆Shell
    -u
    设定新用户的ID值

    成功创建一个新用户以后,在/etc/passwd文档中就会增加一行该用户的信息,其格式如下:
    〔用户名〕:〔密码〕:〔UID〕:〔GID〕:〔身份描述〕:〔主目录〕:〔登陆Shell〕
    其中个字段被冒号“:”分成7各部分。
    由于小于500的UID和GID一般都是系统自己保留,不用做普通用户和组的标志,所以新增加的用户和组一般都是UID和GID大于500的。
    例如使用如下命令:

    [email=root@localhost]root@localhost[/email]
    root〕# useradd user1
    将会创建一个名为userl的用户,关于用户管理命令已介绍过,在此也不做更多的介绍了。

    4.6.2 配置和修改用户口令passwd

    passwd命令用来配置和修改用户命令,只有终极用户和用户自己能够修改密码,其他的普通用户没有修改其他用户密码的权利。其命令如下:
    # passwd〔用户名〕
    为避免输入密码是被人注意到有多少位,Linux并不采用类似Windows的密码回显〔显示为*号〕,所以,输入的这些字符是看不见的。例如,为新建的userl用户配置密码可使用如下命令:

    [email=root@localhost]root@localhost[/email]
    root〕# passwd user1
    根据系统的提示信息输入两次密码,系统会显示:
    passwd ::all authentication tokens updated successfully
    表示修改密码成功了。新建用户的工作只有在该用户配置了口令后才算完成,否则无法使用该用户名登陆。

    4.6.3 修改用户信息usermod

    usermod命令用来修改用户信息,其命令格式如下:
    # usermod〔选项〕〔用户名〕

    表4-20 usermod命令常用选项
    常用选项
    意 义
    -d
    更新使用者新的登陆目录
    -e
    配置新用户的停止日期,日期格式为MM/DD/YY
    -f
    帐户过期几日后永久停权。当值为0时帐号则立即被停权。而当值为-1时则关闭此功能。预设值为-1
    -g
    更新使用者新用户加入群组
    -G
    定义使用者为一堆groups的成员。每个群组使用“??”隔开,不能够夹杂空白字
    -l
    变更用户登陆时的名称,同时使用者目录名也会跟着更动成新的名称
    -s
    指定新用户Shell
    -u
    用户ID值,必须为唯一的ID值。用户目录树下所用的文档目录其userID会自动变更,放在拥护目录外的文档则要自行手动更动
    例如,下面的命令修改用户信息:

    [email=root@localhost]root@localhost[/email]
    root〕# usermod –d/home/user2 –s/bin/bash user2
    将用户名user2的主目录路径配置在/home/user1,登陆的Shell配置为/usr/bin/gcc。
    一般情况下usermod命令会参照命令指令的部分修改用户帐号信息。但usermod不允许改变正在线上的使用者帐号名称,因此,当用usermod来改变用户帐号信息时,必须确认这名没在电脑上执行任何程式。 
    4.6.4  新建组群groupadd

    groupadd命令用来建立新的用户组,其命令格式如下:
    # groupadd〔选项〕〔用户名称〕
    常用选项有:
    -g:GID值。除非使用-o参数不然该值必须是唯一,不可相同,数值不可为负。
    GID值预设为最小不得小于500而逐次增加。0—499传统上是保留系统帐号使用。
    -f:新增的一个已存在的群组帐号,系统会出现错误讯息然后结束groupadd.
    假如是这样的情况,不会新增这个群组(假如是这个情况,系统不会在新增一次)。也可同时加上-g选项,当您加上一个GID时,此时GID就不用是唯一值, 可不加-o参数,建好的群组会显示建立后的结果(adding a group as neither –g or –o options were specified),这是Red Hat Linux额外增设的选项。 
    4.6.5 删除用户userdel

    userdel命令用来删除已存在的用户及相关的文档,其命令格式如下:
    # userdel 〔选项〕用户名
    userdel命令的常用选项:
    -r将用户目录下的文档一并删除。在其他位置上的文档也将一一找出并删除。
    Userdel不允许移除正在线上的用户帐号,因此,假如想删除这类用户帐号,必须先杀掉用户在系统上运行的程式才能进行帐号删除。

    4.6.6 删除群组groupdel

    groupdel命令用来删除已存在的用户组,其命令格式如下:
    # groupdel组名
    同userdel类似,假如有任何一个组内的用户在上线,就不能移除该用户组,因此,假如组内有用户在线的话,最好先移出该用户,然后在删除该用户。

    4.6.7 用户间转换su

    su 命令常用于不同用户间转换。其命令格式如下: 
    # su〔用户名〕
    su命令的常见用法是变成跟用户或终极用户,假如发出不带用户名的su命令,则系统提示输入根口令,输入之后则可换为根用户。假如登陆为根用户,则能够用su命令成为系统上任何用户而无需口令。
    例如,假如登陆为user1,要转换为user2,只要用如下命令:
    # su user2
    然后系统提示输入user2口令,输入正确的口令之后就能够转换到user2。完成之后就能够用exit命令返回到user1。

    4.6.8 查看当前在线用户who

    who命令主要用于查看当前在线上的用户情况。这个命令很有用。假如用户想和其他用户建立即使通讯,比如使用talk命令,那么首先要确定的就是该用户确实在线上,不然talk进程就无法建立起来。
    又如,系统管理员希望监控每个登陆的用户此时此刻的所作所为,也要使用who命令。Who命令的常用命令格式和常用选项如下:
    # who〔选项〕
    命令who常用命令选项如表4-21所示。
    表 4-21 命令who常用命令选项
    常用选项
    意 义
    -a
    显示任何用户的任何信息
    -m
    显示运行该程式的用户名,和“who am I”的作用相同
    -q
    只显示用户的登陆帐号和登陆用户的数量,该选项优先级高于其他任何选项
    -u
    在登陆用户后面显示该用户最后一次对系统进行操作距今的时间
    -H
    显示列标题

    任何的选项是可选的,例如,使用命令:

    [email=root@localhose]root@localhose[/email]
    root〕# who-aH
    其中主标题的含义如下表4—22所示。
    表4-22 who输出常用标题含义
    标题
    含义
    USER
    用户登陆
    LINE
    用户登陆使用终端
    TIME
    用户登陆时间
    LDIE
    用户空闲时间,即至进行操作的时间
    PID
    用户登陆shell的进程ID

    也能够单独使用who命令,这时将显示登陆用户另、使用终端设备连同登陆到系统的时间三项内容

     

     

    linux (debian)查看和添加用户或用户组

    1、Linux里查看所有用户
    linux里,并没有像windows的net user,net localgroup这些方便的命令来管理用户.
     
    Xwindows界面的就不说了.
     
    (1)在终端里.其实只需要查看 /etc/passwd文件就行了.
    (2)看第三个参数:500以上的,就是后面建的用户了.其它则为系统的用户.
     
    或者用cat /etc/passwd
     
    2、用户管理命令
     
    useradd 注:添加用户
    添加用户以后,会相应的在 /home目录下创建关于该用户的一个文件夹(useradd tuping)
     
     
            给linux增加一个和root相同权限的用户
    #useradd -u 0 -o -g 0 username使用 -o参数可以允许建立相同id的用户

    增加普通用户命令: 
    adduser abc

    passwd abc

    exit

    用abc登录

    /etc/passwd中保存了用户信息

    LINUX创建用户的命令 
    useradd -g test -d /home/test1 -s /etc/bash -m test1 
    注解:-g 所属组 -d 家目录 -s 所用的SHELL 
    删除用户命令 
    userdel -r test1 
    创建密码命令 
    passwd

    1.添加用户

      添加用户的命令为useradd,假设我们添加一个名字为testuser的用户,设置其登录Shell,设置它的其他属性:

      useradd �Cs /bin/bash �CG thiz �Cd /home/testuser testuser

      passwd testuser

      关于useradd的详细帮助可以在man useradd中得到。这里-s参数用来指定用户的启动Shell,如果不希望给用户Shell的许可权,就在/etc/Shells中添加 /dev/null和/usr/bin/passwd,然后指定Shell为/dev/null或者/usr/bin/passwd。第一种情况是根本不 允许用户登录(例如该用户为邮件账号,只允许收发邮件);第二种是只允许登录进来修改密码。-G用来指定用户在属于添加的testuser用户组的同时, 也属于thiz用户组。-d用来指定用户的主目录位置, 这里指定为默认位置/home/testuser(当然也可以不指定,默认创建/home/testuser,并将用户主目录指向该目录)。添加用户以后 就需要使用 passwd 命令为其设置密码。

      对于已经添加的用户,需要修改其属性,可以使用命令usermod,也可以在man usermod中得到更多信息。

      使用Webmin,进入系统信息的用户管理模块。

    2.删除用户

      删除用户可以通过命令userdel来完成,这依赖于系统所安装的软件。

      # userdel testuser

      不过需要注意的是删除用户并不会删除为该用户创建的主目录,这样是因为该目录中还有可能保存着有用的文件,如果确信该用户的主目录没有需要的文件了,需要手工删除其主目录,例如:

      # rm -r  /home/testuser

      

      3.修改密码

      修改密码可以使用命令方式:

      # passwd username

      即可对用户密码进行修改。当然在Webmin中提供了修改用户密码的功能,只要选择系统中Change Passwords模块,就会进入修改密码模块。

    展开全文
  • 目录 配置文件 用户信息文件 用户密码文件 组信息文件 组密码文件 用户管理命令 useradd ...用户组管理命令 ...在Linux系统中主要是通过配置文件来实现对用户和用户组管理,比较重要的有以...

    目录

    配置文件

    用户信息文件

    用户密码文件

    组信息文件

    组密码文件

    用户管理命令

    useradd

    passwd

    usermod

    chage

    userdel

    id

    su

    who

     w

    用户组管理命令

    groupadd

    groupmod

    groupdel

    gpasswd


    配置文件

    在Linux系统中主要是通过配置文件来实现对用户和用户组的管理,比较重要的有以下四个配置文件:
    /etc/passwd(用户信息文件)、/etc/shadow(用户密码文件、影子文件)、/etc/group(组信息文件)、/etc/gshadow(组密码文件)。

    用户信息文件

    /etc/passwd文件中保存了Linux系统中所有用户的基本信息,使用man 5 passwd命令查看该配置文件的帮助,可知该配置文件中的每条记录都包含以下七个字段:account:password:UID:GID:GECOS:directory:shell,各个字段的含义如下图所示。 

    用户密码文件

    /etc/shadow文件中存储了用户的密码信息,包含的内容如下图所示。 

    /etc/shadow配置文件中日期字段需使用时间戳来表示,即从1970年1月1日到指定日期之间所经历的天数,下面给出其换算方法。  

    //把时间戳换算为日期:14781为需要换算的时间戳
    date -d "1970-01-01 14781 days" "+%Y/%m/%d %H:%M:%S" 
    //把日期换算为时间戳:2017/09/10为需要换算为时间戳的日期
    echo $(($(date --date="2017/09/10" +%s)/86400+1))

    组信息文件

    /etc/group文件中保存了Linux系统中所有用户组的信息,其内容各字段及其含义如下图所示。 

    组密码文件

    /etc/gshadow文件中保存了用户组的密码信息,其内容各字段及其含义如下图所示。 

    用户管理命令

    useradd

    命令用途:添加新用户。
               命令语法:useradd[选项][用户名]
               常用选项:
               -u:指定用户的UID;
               -d:指定用户的家目录;
               -c:指定用户的描述内容;
               -g:指定用户的初始组;
               -G:指定用户的附加组;
               -s:指定用户的登录shell,默认为/bin/bash; 

    //新添加一个用户user1,并指定其UID、家目录、描述内容、附加组
    useradd -u 567 -d /user1 -c "this is a test user" -G group1 user1
    //执行以上命令以后会在/etc/passwd配置文件中增加以下user1内容
    user1:x:567:567:this is a test user:/user1:/bin/bash

    使用useradd命令在添加用户时对于那些未设置值的字段,系统会根据/etc/default/useradd文件中指定的默认值进行设置。  

    新用户在创建时一般情况下会自动创建以下用户相关文件:

    1、用户的家目录

    • 普通用户:/home/用户名/,默认所有者和所属组为此用户及其初始组,权限700;

    • 超级用户:/root/,默认所有者和所属组为root用户和root组,权限550;

    2、用户的邮箱文件,默认文件名:/var/spool/mail/用户名

    3、用户模板目录/etc/skel/,添加新用户时,会自动将模板目录下的文件复制到添加的新用户的家目录。

    passwd

    命令用途:设置用户密码。
               命令语法:passwd[选项][用户名]
               常用选项:
               -S:查询用户的密码状态,仅root用户可用;
               -l:暂时锁定用户,仅root用户可用;
               -u:解锁用户,仅root用户可用;
               --stdin:将管道符输出的内容作为用户密码;

    //修改用户user1的密码为123
    echo "123" | passwd --stdin user1
    //暂时锁定user1用户
    passwd -l user1
    //解锁user1用户
    passwd -u user1

    usermod

    命令用途:修改用户信息。
               命令语法:usermod[选项][用户名]
               常用选项:
               -u:修改用户的UID;
               -d:修改用户的家目录;
               -c:修改用户的描述内容;
               -g:修改用户的初始组;
               -G:修改用户的附加组;
               -s:修改用户的登录shell;
               -L:临时锁定用户;
               -U:解锁用户; 

    //修改user1用户的UID、家目录、描述内容三个字段的值
     usermod -u "666" -d /home/user1 -c "user1" user1
    //暂时锁定user1用户
    usermod -L user1
    //解锁user1用户
    usermod -U  user1

    chage

    命令用途:修改用户密码状态。
               命令语法:chage[选项][用户名] 
               常用选项:
               -l:列出用户的详细密码状态;
               -d:修改密码的最后一次修改日期;
               -m:修改密码的最小修改时间间隔天数;
               -M:修改密码有效期;
               -W:修改密码过期前警告天数;
               -I:修改密码过期后宽限天数;
               -E:修改密码失效日期; 

    //修改密码的最后修改日期为1970年1月1日
    chage -d 0 user1

    userdel

    命令用途:删除用户。
               命令语法:userdel[选项][用户名] 
               常用选项:
               -r:删除用户的同时删除用户家目录; 

    //删除用户user1
    userdel -r user1

    id

    命令用途:查看用户的UID和GID。

    命令语法:id[用户名]  

    //查看用户user1的UID和GID信息
    id user1

    su

    命令用途:切换用户。
               命令语法:su[选项][用户名] 
               常用选项:
               -:连带用户的环境变量一起切换;
               -c:仅执行一次命令; 

    //切换到root用户身份
    su - root
    //切换到root用户身份添加一个用户user1
    su - root -c "useradd user1"

    who

    命令用途:显示当前登录系统的所有用户的信息。

    命令语法:who 

    //查看当前登录系统的用户信息(登录用户+登录终端+登录时间[+远程主机的IP地址])
    who
    root			tty1          2013-08-19 13:29
    root			pts/0	      2013-08-19 15:04 (192.168.0.134) 
    pengjunlee	        pts/1	      2013-12-20 10:37 (180.111.155.40)

    注:tty表示本地终端登录,pts表示远程终端登录。  

     w

    命令用途:与who类似,显示当前登录系统的所有用户的更为详细的信息。

    命令语法:w 

    //显示当前登录系统的用户的详细信息
    w
    18:18:18 up  8:37,  3 users,  load average: 0.00, 0.00, 0.00
    USER        TTY          FROM              LOGIN@     IDLE    JCPU   PCPU    WHAT
    root        tty1          -                18:18      16.00s  0.01s  0.01s   -bash
    root        pts/0    192.168.12.1          09:46      20:47   0.55s   0.55s   -bash
    pengjunlee  pts/1    192.168.12.1          18:05      0.00s   0.12s   0.09s    w

    注:使用w命令显示的内容依次为:登录用户、登录终端、登录IP、登录时间、空闲时间、累计占用CPU时间、当前操作占用的CPU时间和当前正在执行的操作。  

    用户组管理命令

    groupadd

    命令用途:创建新的用户组。
               命令语法:groupadd[选项][组名]
               常用选项:
               -g:指定用户组的GID; 

    //添加一个default_group组,并指定其GID为600
    groupadd -g 600 default_group

    groupmod

    命令用途:修改用户组信息。
               命令语法:groupmod[选项][组名]
               常用选项:
               -g:修改用户组的GID;
               -n:修改用户组的组名; 

    //修改组group1的组名为default_group
    groupmod -n  default_group group1

    groupdel

    命令用途:删除用户组。

    命令语法:groupdel[组名] 

    //删除group1用户组
    groupdel group1

    gpasswd

    命令用途:gpasswd命令用于向组中添加或删除用户。
               命令语法:gpasswd[选项][组名]
               常用选项:
               -a:添加用户;
               -d:删除用户; 

    //将用户user1添加到goup1组中
    gpasswd -a user1 group1

      

    展开全文
  • 入门学习Linux常用必会60个命令实例详解doc/txt

    千次下载 热门讨论 2011-06-09 00:08:45
    在系统关机前使用 shutdown命令,系统管理员会通知所有登录的用户系统将要关闭,并且login指令会被冻结,即新的用户不能再登录。 halt 1.作用 halt命令的作用是关闭系统,它的使用权限是超级用户。 2.格式 halt...
  • Linux 命令面试题

    万次阅读 多人点赞 2019-07-24 09:40:04
    Linux面试题: 1.Linux常用系统安全命令 sudo // 超级用户 su // 用于切换当前用户身份到其他身份,变更时需输入...2.Linux常用进程管理命令 w // 用于显示已经登陆系统的用户列表,并显示用户正在执行的指令。 top ...

    Linux面试题:
    1.Linux常用系统安全命令
    sudo // 超级用户
    su // 用于切换当前用户身份到其他身份,变更时需输入所要变更的用户账号与密码。
    chmod // 用来变更文件或目录的权限
    setfacl // 设置文件访问控制列表
    2.Linux常用进程管理命令
    w // 用于显示已经登陆系统的用户列表,并显示用户正在执行的指令。
    top // 可以实时动态地查看系统的整体运行情况,是一个综合了多方信息监测系统性能和运行信息的实用工具。
    ps // 用于报告当前系统的进程状态。
    kill // 用来删除执行中的程序或工作。
    pkill // 可以按照进程名杀死进程。
    pstree // 以树状图的方式展现进程之间的派生关系,显示效果比较直观。
    killall // 使用进程的名称来杀死进程,使用此指令可以杀死一组同名进程。
    3.Linux常用用户管理命令
    id // 可以显示真实有效的用户ID(UID)和组ID(GID)。
    usermod // 用于修改用户的基本信息。
    useradd // 用于 Linux中创建的新的系统用户。
    groupadd // 用于创建一个新的工作组,新工作组的信息将被添加到系统文件中。
    userdel // 用户删除给定的用户,以及与用户相关的文件。若不加选型,则进删除用户账号,而不删除相关文件。
    4.Linux系统关机和重启
    shutdown reboot
    5.Linux系统定时任务
    contab -e //创建定时任务
    6.Linux文件内容查看
    head // 用于显示文件的开头的内容。在默认情况下,head命令显示文件的头10行内容。
    tail // 用于输入文件中的尾部内容。tail命名默认在屏幕上显示指定文件的末尾10行。
    more // 用来浏览文件档案的内容(只能向前浏览)。
    less // 用来浏览文字档案的内容,允许用户向前或向后浏览文件。使用该命令时,用PageUp键向上翻页,用PageDown键向下翻页。要退出less程序,应按Q键。
    7.计划每星期天早8点服务器定时重启,如何实现?
    Crontab-e
    0008 * * 7 /sbin/init 6
    8.linux下如何改IP,主机名,DNS
    使用setup 命令可以修改IP 和DNS ,修改完后重启网络:service network restart

    临时修改即时生效,重启后失效
    hostname主机名: 修改主机名
    ifconfigeth0 IP netmask 掩码 :修改IP

    永久修改主机名: 修改:/etc/sysconfig/network 文件 HOSTNAME=主机名
    永久修改IP地址:修改 /etc/sysconfig/network-scripts/ifcfg-eth0 文件
    修改完后重启网络:service network restart
    9.如何用mysql 命令进行备份和恢复? 以test 库为例,创建一个备份,并再用此备份进行恢复。
    答案:mysqldump -u root -p test > test.bak
    mysql -u root -p < test.bak
    10.linux系统中如何获取pid为100的进程所监听的tcp端口,请给出详细命令?
    netstat -nlpt |grep 100
    4.Linux常用命令
    arch 显示机器的处理器架构(1) 
    uname -m 显示机器的处理器架构(2) 
    uname -r 显示正在使用的内核版本 
    dmidecode -q 显示硬件系统部件 - (SMBIOS / DMI) 
    hdparm -i /dev/hda 罗列一个磁盘的架构特性 
    hdparm -tT /dev/sda 在磁盘上执行测试性读取操作 
    cat /proc/cpuinfo 显示CPU info的信息 
    cat /proc/interrupts 显示中断 
    cat /proc/meminfo 校验内存使用 
    cat /proc/swaps 显示哪些swap被使用 
    cat /proc/version 显示内核的版本 
    cat /proc/net/dev 显示网络适配器及统计 
    cat /proc/mounts 显示已加载的文件系统 
    lspci -tv 罗列 PCI 设备 
    lsusb -tv 显示 USB 设备 
    date 显示系统日期 
    cal 2007 显示2007年的日历表 
    date 041217002007.00 设置日期和时间 - 月日时分年.秒 
    clock -w 将时间修改保存到 BIOS

    关机 (系统的关机、重启以及登出 ) 
    shutdown -h now 关闭系统(1) 
    init 0 关闭系统(2) 
    telinit 0 关闭系统(3) 
    shutdown -h hours:minutes & 按预定时间关闭系统 
    shutdown -c 取消按预定时间关闭系统 
    shutdown -r now 重启(1) 
    reboot 重启(2) 
    logout 注销

    文件和目录 
    cd /home 进入 ‘/ home’ 目录’ 
    cd … 返回上一级目录 
    cd …/… 返回上两级目录 
    cd 进入个人的主目录 
    cd ~user1 进入个人的主目录 
    cd - 返回上次所在的目录 
    pwd 显示工作路径 
    ls 查看目录中的文件 
    ls -F 查看目录中的文件 
    ls -l 显示文件和目录的详细资料 
    ls -a 显示隐藏文件 
    ls [0-9] 显示包含数字的文件名和目录名 
    tree 显示文件和目录由根目录开始的树形结构(1) 
    lstree 显示文件和目录由根目录开始的树形结构(2) 
    mkdir dir1 创建一个叫做 ‘dir1’ 的目录’ 
    mkdir dir1 dir2 同时创建两个目录 
    mkdir -p /tmp/dir1/dir2 创建一个目录树 
    rm -f file1 删除一个叫做 ‘file1’ 的文件’ 
    rmdir dir1 删除一个叫做 ‘dir1’ 的目录’ 
    rm -rf dir1 删除一个叫做 ‘dir1’ 的目录并同时删除其内容 
    rm -rf dir1 dir2 同时删除两个目录及它们的内容 
    mv dir1 new_dir 重命名/移动 一个目录 
    cp file1 file2 复制一个文件 
    cp dir/* . 复制一个目录下的所有文件到当前工作目录 
    cp -a /tmp/dir1 . 复制一个目录到当前工作目录 
    cp -a dir1 dir2 复制一个目录 
    ln -s file1 lnk1 创建一个指向文件或目录的软链接 
    ln file1 lnk1 创建一个指向文件或目录的物理链接 
    touch -t 0712250000 file1 修改一个文件或目录的时间戳 - (YYMMDDhhmm) 
    file file1 outputs the mime type of the file as text 
    iconv -l 列出已知的编码 
    iconv -f fromEncoding -t toEncoding inputFile > outputFile creates a new from the given input file by assuming it is encoded in fromEncoding and converting it to toEncoding. 
    find . -maxdepth 1 -name *.jpg -print -exec convert “{}” -resize 80x60 “thumbs/{}” ; batch resize files in the current directory and send them to a thumbnails directory (requires convert from Imagemagick)

    文件搜索 
    find / -name file1 从 ‘/’ 开始进入根文件系统搜索文件和目录 
    find / -user user1 搜索属于用户 ‘user1’ 的文件和目录 
    find /home/user1 -name *.bin 在目录 ‘/ home/user1’ 中搜索带有’.bin’ 结尾的文件 
    find /usr/bin -type f -atime +100 搜索在过去100天内未被使用过的执行文件 
    find /usr/bin -type f -mtime -10 搜索在10天内被创建或者修改过的文件 
    find / -name *.rpm -exec chmod 755 ‘{}’ ; 搜索以 ‘.rpm’ 结尾的文件并定义其权限 
    find / -xdev -name *.rpm 搜索以 ‘.rpm’ 结尾的文件,忽略光驱、捷盘等可移动设备 
    locate *.ps 寻找以 ‘.ps’ 结尾的文件 - 先运行 ‘updatedb’ 命令 
    whereis halt 显示一个二进制文件、源码或man的位置 
    which halt 显示一个二进制文件或可执行文件的完整路径

    挂载一个文件系统 
    mount /dev/hda2 /mnt/hda2 挂载一个叫做hda2的盘 - 确定目录 ‘/ mnt/hda2’ 已经存在 
    umount /dev/hda2 卸载一个叫做hda2的盘 - 先从挂载点 ‘/ mnt/hda2’ 退出 
    fuser -km /mnt/hda2 当设备繁忙时强制卸载 
    umount -n /mnt/hda2 运行卸载操作而不写入 /etc/mtab 文件- 当文件为只读或当磁盘写满时非常有用 
    mount /dev/fd0 /mnt/floppy 挂载一个软盘 
    mount /dev/cdrom /mnt/cdrom 挂载一个cdrom或dvdrom 
    mount /dev/hdc /mnt/cdrecorder 挂载一个cdrw或dvdrom 
    mount /dev/hdb /mnt/cdrecorder 挂载一个cdrw或dvdrom 
    mount -o loop file.iso /mnt/cdrom 挂载一个文件或ISO镜像文件 
    mount -t vfat /dev/hda5 /mnt/hda5 挂载一个Windows FAT32文件系统 
    mount /dev/sda1 /mnt/usbdisk 挂载一个usb 捷盘或闪存设备 
    mount -t smbfs -o username=user,password=pass //WinClient/share /mnt/share 挂载一个windows网络共享

    磁盘空间 
    df -h 显示已经挂载的分区列表 
    ls -lSr |more 以尺寸大小排列文件和目录 
    du -sh dir1 估算目录 ‘dir1’ 已经使用的磁盘空间’ 
    du -sk * | sort -rn 以容量大小为依据依次显示文件和目录的大小 
    rpm -q -a --qf ‘%10{SIZE}t%{NAME}n’ | sort -k1,1n 以大小为依据依次显示已安装的rpm包所使用的空间 (fedora, redhat类系统) 
    dpkg-query -W -f=’ I n s t a l l e d − S i z e ; 10 t {Installed-Size;10}t InstalledSize;10t{Package}n’ | sort -k1,1n 以大小为依据显示已安装的deb包所使用的空间 (ubuntu, debian类系统)

    用户和群组 
    groupadd group_name 创建一个新用户组 
    groupdel group_name 删除一个用户组 
    groupmod -n new_group_name old_group_name 重命名一个用户组 
    useradd -c "Name Surname " -g admin -d /home/user1 -s /bin/bash user1 创建一个属于 “admin” 用户组的用户 
    useradd user1 创建一个新用户 
    userdel -r user1 删除一个用户 ( ‘-r’ 排除主目录) 
    usermod -c “User FTP” -g system -d /ftp/user1 -s /bin/nologin user1 修改用户属性 
    passwd 修改口令 
    passwd user1 修改一个用户的口令 (只允许root执行) 
    chage -E 2005-12-31 user1 设置用户口令的失效期限 
    pwck 检查 ‘/etc/passwd’ 的文件格式和语法修正以及存在的用户 
    grpck 检查 ‘/etc/passwd’ 的文件格式和语法修正以及存在的群组 
    newgrp group_name 登陆进一个新的群组以改变新创建文件的预设群组

    文件的权限 - 使用 “+” 设置权限,使用 “-” 用于取消 
    ls -lh 显示权限 
    ls /tmp | pr -T5 -W$COLUMNS 将终端划分成5栏显示 
    chmod ugo+rwx directory1 设置目录的所有人(u)、群组(g)以及其他人(o)以读(r )、写(w)和执行(x)的权限 
    chmod go-rwx directory1 删除群组(g)与其他人(o)对目录的读写执行权限 
    chown user1 file1 改变一个文件的所有人属性 
    chown -R user1 directory1 改变一个目录的所有人属性并同时改变改目录下所有文件的属性 
    chgrp group1 file1 改变文件的群组 
    chown user1:group1 file1 改变一个文件的所有人和群组属性 
    find / -perm -u+s 罗列一个系统中所有使用了SUID控制的文件 
    chmod u+s /bin/file1 设置一个二进制文件的 SUID 位 - 运行该文件的用户也被赋予和所有者同样的权限 
    chmod u-s /bin/file1 禁用一个二进制文件的 SUID位 
    chmod g+s /home/public 设置一个目录的SGID 位 - 类似SUID ,不过这是针对目录的 
    chmod g-s /home/public 禁用一个目录的 SGID 位 
    chmod o+t /home/public 设置一个文件的 STIKY 位 - 只允许合法所有人删除文件 
    chmod o-t /home/public 禁用一个目录的 STIKY 位

    文件的特殊属性 - 使用 “+” 设置权限,使用 “-” 用于取消 
    chattr +a file1 只允许以追加方式读写文件 
    chattr +c file1 允许这个文件能被内核自动压缩/解压 
    chattr +d file1 在进行文件系统备份时,dump程序将忽略这个文件 
    chattr +i file1 设置成不可变的文件,不能被删除、修改、重命名或者链接 
    chattr +s file1 允许一个文件被安全地删除 
    chattr +S file1 一旦应用程序对这个文件执行了写操作,使系统立刻把修改的结果写到磁盘 
    chattr +u file1 若文件被删除,系统会允许你在以后恢复这个被删除的文件 
    lsattr 显示特殊的属性

    打包和压缩文件 
    bunzip2 file1.bz2 解压一个叫做 'file1.bz2’的文件 
    bzip2 file1 压缩一个叫做 ‘file1’ 的文件 
    gunzip file1.gz 解压一个叫做 'file1.gz’的文件 
    gzip file1 压缩一个叫做 'file1’的文件 
    gzip -9 file1 最大程度压缩 
    rar a file1.rar test_file 创建一个叫做 ‘file1.rar’ 的包 
    rar a file1.rar file1 file2 dir1 同时压缩 ‘file1’, ‘file2’ 以及目录 ‘dir1’ 
    rar x file1.rar 解压rar包 
    unrar x file1.rar 解压rar包 
    tar -cvf archive.tar file1 创建一个非压缩的 tarball 
    tar -cvf archive.tar file1 file2 dir1 创建一个包含了 ‘file1’, ‘file2’ 以及 'dir1’的档案文件 
    tar -tf archive.tar 显示一个包中的内容 
    tar -xvf archive.tar 释放一个包 
    tar -xvf archive.tar -C /tmp 将压缩包释放到 /tmp目录下 
    tar -cvfj archive.tar.bz2 dir1 创建一个bzip2格式的压缩包 
    tar -xvfj archive.tar.bz2 解压一个bzip2格式的压缩包 
    tar -cvfz archive.tar.gz dir1 创建一个gzip格式的压缩包 
    tar -xvfz archive.tar.gz 解压一个gzip格式的压缩包 
    zip file1.zip file1 创建一个zip格式的压缩包 
    zip -r file1.zip file1 file2 dir1 将几个文件和目录同时压缩成一个zip格式的压缩包 
    unzip file1.zip 解压一个zip格式压缩包

    RPM 包 - (Fedora, Redhat及类似系统) 
    rpm -ivh package.rpm 安装一个rpm包 
    rpm -ivh --nodeeps package.rpm 安装一个rpm包而忽略依赖关系警告 
    rpm -U package.rpm 更新一个rpm包但不改变其配置文件 
    rpm -F package.rpm 更新一个确定已经安装的rpm包 
    rpm -e package_name.rpm 删除一个rpm包 
    rpm -qa 显示系统中所有已经安装的rpm包 
    rpm -qa | grep httpd 显示所有名称中包含 “httpd” 字样的rpm包 
    rpm -qi package_name 获取一个已安装包的特殊信息 
    rpm -qg “System Environment/Daemons” 显示一个组件的rpm包 
    rpm -ql package_name 显示一个已经安装的rpm包提供的文件列表 
    rpm -qc package_name 显示一个已经安装的rpm包提供的配置文件列表 
    rpm -q package_name --whatrequires 显示与一个rpm包存在依赖关系的列表 
    rpm -q package_name --whatprovides 显示一个rpm包所占的体积 
    rpm -q package_name --scripts 显示在安装/删除期间所执行的脚本l 
    rpm -q package_name --changelog 显示一个rpm包的修改历史 
    rpm -qf /etc/httpd/conf/httpd.conf 确认所给的文件由哪个rpm包所提供 
    rpm -qp package.rpm -l 显示由一个尚未安装的rpm包提供的文件列表 
    rpm --import /media/cdrom/RPM-GPG-KEY 导入公钥数字证书 
    rpm --checksig package.rpm 确认一个rpm包的完整性 
    rpm -qa gpg-pubkey 确认已安装的所有rpm包的完整性 
    rpm -V package_name 检查文件尺寸、 许可、类型、所有者、群组、MD5检查以及最后修改时间 
    rpm -Va 检查系统中所有已安装的rpm包- 小心使用 
    rpm -Vp package.rpm 确认一个rpm包还未安装 
    rpm2cpio package.rpm | cpio --extract --make-directories bin 从一个rpm包运行可执行文件 
    rpm -ivh /usr/src/redhat/RPMS/arch/package.rpm 从一个rpm源码安装一个构建好的包 
    rpmbuild --rebuild package_name.src.rpm 从一个rpm源码构建一个 rpm 包

    YUM 软件包升级器 - (Fedora, RedHat及类似系统) 
    yum install package_name 下载并安装一个rpm包 
    yum localinstall package_name.rpm 将安装一个rpm包,使用你自己的软件仓库为你解决所有依赖关系 
    yum update package_name.rpm 更新当前系统中所有安装的rpm包 
    yum update package_name 更新一个rpm包 
    yum remove package_name 删除一个rpm包 
    yum list 列出当前系统中安装的所有包 
    yum search package_name 在rpm仓库中搜寻软件包 
    yum clean packages 清理rpm缓存删除下载的包 
    yum clean headers 删除所有头文件 
    yum clean all 删除所有缓存的包和头文件

    DEB 包 (Debian, Ubuntu 以及类似系统) 
    dpkg -i package.deb 安装/更新一个 deb 包 
    dpkg -r package_name 从系统删除一个 deb 包 
    dpkg -l 显示系统中所有已经安装的 deb 包 
    dpkg -l | grep httpd 显示所有名称中包含 “httpd” 字样的deb包 
    dpkg -s package_name 获得已经安装在系统中一个特殊包的信息 
    dpkg -L package_name 显示系统中已经安装的一个deb包所提供的文件列表 
    dpkg --contents package.deb 显示尚未安装的一个包所提供的文件列表 
    dpkg -S /bin/ping 确认所给的文件由哪个deb包提供

    APT 软件工具 (Debian, Ubuntu 以及类似系统) 
    apt-get install package_name 安装/更新一个 deb 包 
    apt-cdrom install package_name 从光盘安装/更新一个 deb 包 
    apt-get update 升级列表中的软件包 
    apt-get upgrade 升级所有已安装的软件 
    apt-get remove package_name 从系统删除一个deb包 
    apt-get check 确认依赖的软件仓库正确 
    apt-get clean 从下载的软件包中清理缓存 
    apt-cache search searched-package 返回包含所要搜索字符串的软件包名称

    查看文件内容 
    cat file1 从第一个字节开始正向查看文件的内容 
    tac file1 从最后一行开始反向查看一个文件的内容 
    more file1 查看一个长文件的内容 
    less file1 类似于 ‘more’ 命令,但是它允许在文件中和正向操作一样的反向操作 
    head -2 file1 查看一个文件的前两行 
    tail -2 file1 查看一个文件的最后两行 
    tail -f /var/log/messages 实时查看被添加到一个文件中的内容

    什么是MongoDB?
    答:mongodb是基于分布式文件存储的nosql数据库,是一种文档型数据库,适合存储

    海量数据并提高性能存取。2.mongodb三元素:
    答:数据库、集合(表)、文档(行)

    名字空间(namespace)是什么?
    答:MongoDB存储BSON对象在丛集(collection)中。数据库名字和丛集名字以句点连结起来叫做名字空间(namespace)。

    MongoDB的特点是什么?
      答:(1)面向文档(2)高性能(3)高可用(4)易扩展(5)丰富的查询语言

    MySQL与MongoDB本质之间最基本的差别是什么?
    答:mongodb的本质还是一个数据库产品,3.0以上版本其稳定性和健壮性有很大提升。它与mysql的区别在于它不会遵循一些约束,比如:sql标准、ACID属性,表结构等。其主要特性如下:
     面向集合文档的存储:适合存储Bson(json的扩展)形式的数据;
     格式自由,数据格式不固定,生产环境下修改结构都可以不影响程序运行;
     强大的查询语句,面向对象的查询语言,基本覆盖sql语言所有能力;
     完整的索引支持,支持查询计划;
     支持复制和自动故障转移;
     支持二进制数据及大型对象(文件)的高效存储;
     使用分片集群提升系统扩展性;
     使用内存映射存储引擎,把磁盘的IO操作转换成为内存的操作;。

    各个数据库存储引擎区别?
    答:mysql的存储引擎是针对表进行设置的,一个库的不同表可以设置不同的存储引擎,mysql默认支持多种存储引擎,以适用不同领域的数据库应用需要,主要的几个数据库引擎如下:
     MyISAM存储引擎
    5.5之前默认的存储引擎,不支持事务、不支持外键,表级锁,内存和硬盘空间占用率低,其优势是访问速度快,对事务完整性没有要求,以select、insert为主的应用基本上都可以使用这个引擎;
     InnoDB存储引擎
    5.5之后默认的存储引擎,提供了具有提交、回滚和奔溃恢复能力的事务安全,支持外键并提供了行级锁,其劣势在于写的处理效率相对较低,并且会占用更多的磁盘空间以保留数据和索引;
     MEMORY存储引擎
    使用存于内存中的内容来创建表,MEMORY类型的表数据存于内存访问非常的快,默认使用HASH索引,一旦数据库服务重启或关闭,表中的数据就会丢失;
     MERGE存储引擎
    MERGE存储引擎是一组MyISAM表组合,这些MyISAM表结构完全相同。MERGE表本身没有数据,对MERGE表的CRUD操作都是通过内部的MyISAM表进行的;

    mongoDB 主要使用在什么应用场景?
     答:MongoDB 的应用已经渗透到各个领域,比如游戏、物流、电商、内容管理、社交、物联网、视频直播等,以下是几个实际的应用案例:
     游戏场景,使用 MongoDB 存储游戏用户信息,用户的装备、积分等直接以内嵌文档的形式存储,方便查询、更新
     物流场景,使用 MongoDB 存储订单信息,订单状态在运送过程中会不断更新,以MongoDB 内嵌数组的形式来存储,一次查询就能将订单所有的变更读取出来。
     社交场景,使用 MongoDB 存储存储用户信息,以及用户发表的朋友圈信息,通过地理位置索引实现附近的人、地点等功能
     物联网场景,使用 MongoDB 存储所有接入的智能设备信息,以及设备汇报的日志信息,并对这些信息进行多维度的分析
     视频直播,使用 MongoDB 存储用户信息、礼物信息等

    6、数据库范式?
    范式 内容
    1NF 每一列都是不可分割的基本数据项,同一列无二值;无重复的域;
    2NF 实例依赖于主键部分;
    3NF 属性不依赖于其他非主属性;
    8、什么情况下设置了索引但无法使用?
    ① 以“%”开头的LIKE语句,模糊匹配
    ② OR语句前后没有同时使用索引
    ③ 数据类型出现隐式转化(如varchar不加单引号的话可能会自动转换为int型
    9、数据库中的事务是什么?
    事务(transaction)是作为一个单元的一组有序的数据库操作。如果组中的所有操作都成功,则认为事务成功,即使只有一个操作失败,事务也不成功。如果所有操作完成,事务则提交,其修改将作用于所有其他数据库进程。如果一个操作失败,则事务将回滚,该事务所有操作的影响都将取消。ACID 四大特性,原子性、隔离性、一致性、持久性。

    了解XSS攻击吗?如何防止SQL注入?
    XSS是跨站脚本攻击,首先是利用跨站脚本漏洞以一个特权模式去执行攻击者构造的脚本,然后利用不安全的Activex控件执行恶意的行为。
    使用htmlspecialchars()函数对提交的内容进行过滤,使字符串里面的特殊符号实体化。
    防止SQL注入的方式:
    开启配置文件中的magic_quotes_gpc 和 magic_quotes_runtime设置
    执行sql语句时使用addslashes进行sql语句转换
    Sql语句书写尽量不要省略双引号和单引号。
    过滤掉sql语句中的一些关键词:update、insert、delete、select、 * 。
    提高数据库表和字段的命名技巧,对一些重要的字段根据程序的特点命名,取不易被猜到的。
    Php配置文件中设置register_globals为off,关闭全局变量注册
    控制错误信息,不要在浏览器上输出错误信息,将错误信息写到日志文件中。

    5、Ndinx与apache的区别?
    Nginx
    轻量级,采用 C 进行编写,同样的 web 服务,会占用更少的内存及资源
    抗并发,nginx 以 epoll and kqueue 作为开发模型,处理请求是异步非阻塞的,负载能力比 apache 高很多,而 apache 则是阻塞型的。在高并发下 nginx 能保持低资源低消耗高性能 ,而 apache 在 PHP 处理慢或者前端压力很大的情况下,很容易出现进程数飙升,从而拒绝服务的现象。
    nginx 处理静态文件好,静态处理性能比 apache 高三倍以上
    nginx 的设计高度模块化,编写模块相对简单
    nginx 配置简洁,正则配置让很多事情变得简单,而且改完配置能使用 -t 测试配置有没有问题,apache 配置复杂 ,重启的时候发现配置出错了,会很崩溃
    nginx 作为负载均衡服务器,支持 7 层负载均衡
    nginx 本身就是一个反向代理服务器,而且可以作为非常优秀的邮件代理服务器
    启动特别容易, 并且几乎可以做到 7*24 不间断运行,即使运行数个月也不需要重新启动,还能够不间断服务的情况下进行软件版本的升级
    社区活跃,各种高性能模块出品迅速
    Apache
    apache 的 rewrite 比 nginx 强大,在 rewrite 频繁的情况下,用 apache
    apache 发展到现在,模块超多,基本想到的都可以找到
    apache 更为成熟,少 bug ,nginx 的 bug 相对较多
    apache 超稳定
    apache 对 PHP 支持比较简单,nginx 需要配合其他后端用
    apache 在处理动态请求有优势,nginx 在这方面是鸡肋,一般动态请求要 apache 去做,nginx 适合静态和反向。
    apache 仍然是目前的主流,拥有丰富的特性,成熟的技术和开发社区

    展开全文
  • Linux

    千次阅读 多人点赞 2020-02-11 21:22:11
    文章目录1. Linux 介绍1.1 Linux 简介1.2 Linux 历史1.3 Linux 版本2. Linux 安装2.1 安装虚拟机2.2 安装 CentOS3. 远程操作 Linux3.1 ... Linux 常用命令5.1 列出文件列表 ls5.2 切换目录命令 cd5.3 目录操作5.3....

    1. Linux 介绍

    1.1 Linux 简介

    Linux 是一套免费使用和自由传播的类 Unix 操作系统,是一个基于 POSIX 和 Unix 的多用户、多任务、支持多线程和多 CPU 的操作系统。它能运行主要的 Unix 工具软件、应用程序和网络协议。它支持 32 位和 64 位硬件。Linux 继承了 Unix 以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

    1.2 Linux 历史

    Linux 最初是由芬兰赫尔辛基大学学生 Linus Torvalds 由于自己不满意教学中使用的 MINIX 操作系统, 所以在 1990 年底由于个人爱好设计出了 LINUX 系统核心。后来发布于芬兰最大的 FTP 服务器上,用户可以免费下载,所以它的周边的程序越来越多,Linux 本身也逐渐发展壮大起来,之后 Linux 在不到三年的时间里成为了一个功能完善,稳定可靠的操作系统。

    1.3 Linux 版本

    Linux的版本分为两种:

    1. 内核版本:内核版本是指在 Linus 领导下的内核小组开发维护的系统内核的版本号
    2. 发行版本:发行版本是一些组织和公司根据自己发行版的不同而自定的,但他们都使用了 Linux 内核

    主流的发行版本有:

    在这里插入图片描述

    2. Linux 安装

    2.1 安装虚拟机

    1. 下载 VMware Workstation

      https://www.vmware.com/cn/products/workstation-pro/workstation-pro-evaluation.html
      
    2. 安装 VMware Workstation

      在这里插入图片描述

    2.2 安装 CentOS

    1. 下载 CentOS 镜像

      https://www.centos.org/download/
      
    2. 打开 VMware Workstation --> 创建新的虚拟机

      在这里插入图片描述

    3. 选择下载的 CentOS 映像文件

      在这里插入图片描述

    4. 配置用户名和密码

      在这里插入图片描述

    5. 设置虚拟机保存路径

      在这里插入图片描述

    6. 设置最大磁盘大小

      在这里插入图片描述

    7. 准备创建 CentOS

      在这里插入图片描述

    8. 成功安装 CentOS

      在这里插入图片描述

    3. 远程操作 Linux

    3.1 SecureCRT 介绍

    SecureCRT 是一款支持 SSH 的终端仿真程序,简单地说是 Windows 下登录 UNIX 或 Linux 服务器主机的软件。

    3.2 SecureCRT 登录 Linux

    1. 在 CentOS 中打开 Terminal,输入命令(显示网络设备)

      ifconfig
      

      这样我们就得到了虚拟机的 ip 地址:

      在这里插入图片描述

    2. 打开 SecureCRT,输入刚才得到的 ip 地址,连接

      在这里插入图片描述

    3. 以 root 用户登录

      在这里插入图片描述

    4. 登陆成功

      在这里插入图片描述

    4. Linux 的目录结构

    在这里插入图片描述

    5. Linux 常用命令

    5.1 列出文件列表 ls

    作用

    ls 用来显示当前目录下的内容。配合参数的使用,能以不同的方式显示目录内容。

    用法

    • ls 显示当前目录下的内容
    • ls -a 显示当前目录下的所有文件(包含隐藏的文件)
    • ls -l(简写为 ll) 显示当前目录下的详细信息

    5.2 切换目录命令 cd

    作用

    cd 命令用于切换当前工作目录至 dirName(目录参数)。

    用法

    • cd dirName 切换到 dirName 目录
    • cd … 切换到上一层目录
    • cd / 切换到系统根目录
    • cd ~ 切换到用户主目录
    • cd - 切换到上一个所在目录

    5.3 目录操作

    5.3.1 创建目录 mkdir

    作用

    mkdir 命令可用来创建子目录。

    用法

    • mkdir AAA 在工作目录下,建立一个名为 AAA 的子目录
    • mkdir -p BBB/Test 在工作目录下的 BBB 目录中,建立一个名为 Test 的子目录。 若 BBB 目录原本不存在,则建立一个。

    5.3.2 删除目录 rmdir

    作用

    rmdir 命令删除空的目录。

    不同参数

    • redir AAA 将工作目录下,名为 AAA 的子目录删除

    • rmdir -p BBB/Test 在工作目录下的 BBB 目录中,删除名为 Test 的子目录。若 Test 删除后,BBB 目录成为空目录,则 BBB 也删除。

    5.4 浏览文件

    5.4.1 cat

    作用

    用于显示文件的内容。

    用法

    • cat fileName 显示文件的内容,文件太多时,会显示不完全

    5.4.2 more

    作用

    用于要显示的内容会超过一个画面长度的情况。按空格键显示下一个画面,回车显示下一行内容,按 q 键退出查看。

    用法

    • more fileName 按页显示文件的内容

    5.4.3 less

    作用

    less 与 more 类似,但使用 less 可以随意浏览文件,而 more 仅能向前移动,却不能向后移动,而且 less 在查看之前不会加载整个文件。PgUp 和 PgDn 进行上下翻页。

    用法

    • more fileName 显示文件的内容,可以上下查看

    5.4.4 tail

    作用

    tail 命令可用于查看文件的内容,有一个常用的参数 -f 用于查阅正在改变的日志文件。

    用法

    • tail -10 fileName 查看文件后10行数据
    • tail -f fileName 动态查看文件(ctrl + c 退出)

    5.5 文件操作

    5.5.1 复制文件 cp

    作用

    cp 命令可以将文件从一处复制到另一处。一般在使用 cp 命令时将一个文件复制成另一个文件或复制到某目录时,需要指定源文件名与目标文件名或目录。

    用法

    • cp a.txt A/b.txt 将 a.txt 复制到 A 目录下 b.txt 文件
    • cp a.txt b.txt 将 a.txt 复制为 b.txt 文件

    5.5.2 移动文件 mv

    作用

    mv 命令用来为文件或目录改名、或将文件或目录移入其它位置。

    用法

    • mv a.txt A/b.txt 将 a.txt 移动到 A 目录下 b.txt 文件
    • mv a.txt b.txt 将 a.txt 重命名为 b.txt 文件

    5.5.3 删除文件 rm

    作用

    rm 命令用于删除一个文件或者目录。

    用法

    • rm a.txt 删除 a.txt 文件,删除需要用户确认(y/n)
    • rm -r A 将 A 目录及以下文件,删除需要用户确认
    • rm -rf A 将 A 目录及以下文件,不需要用户确认
    • rm -rf /* 删库命令,危险

    5.5.4 打包解压文件 tar

    作用

    tar 命令用于备份文件,解压备份文件

    用法

    • tar -cvf a.tar a.txt 将 a.txt 文件打包成 a.tar
    • tar -zcvf a.tar.gz a.txt 将 a.txt 文件压缩成 a.tar.gz
    • tar -xvf a.tar -C A 将 a.tar 文件解压到 A 目录
    • tar -zxvf a.tar.gz -C A 将 a.tar.gz 文件解压到 A 目录

    5.5.5 查找文件 find

    作用

    find 命令用来在指定目录下查找文件。

    用法

    • find / -name “a.txt” 在根目录下查找 a.txt 文件
    • find / -name “a*” 在根目录下查找以 “a” 开头的文件

    5.5.6 查找文件里的字符串 grep

    作用

    grep 命令用于查找文件里符合条件的字符串。

    用法

    • grep test a.txt --color 查找字符串 test 在 a.txt 文件中,并且高亮显示

    5.6 其他常用命令

    • pwd 显示当前所在目录
    • clear 清屏
    • touch a.txt 创建一个空的文件 a.txt

    6. Vim 编辑器

    6.1 Vim 的基本使用

    • vim fileName 打开文件

    6.2 Vim 的三种模式

    Vim 分为三种模式:

    • 命令模式:用户刚刚启动 vim,便进入了命令模式

    • 输入模式:在命令模式下按下 i 就进入了输入模式

      • ESC 退出输入模式,切换到命令模式
    • 底线命令模式:在命令模式下按下 : 就进入了底线命令模式

      • ESC 退出底线命令模式,切换到命令模式
      • :/a 查找 a
      • :wq 保存并退出
      • :q! 不保存退出

    6.3 重定向输出 > 和 >>

    作用

    > 重定向输出,覆盖原有内容

    >> 重定向输出,又追加功能

    用法

    • cat a.txtx > b.txt 将 a.txt 中内容覆盖到 b.txt 中

    • cat a.txt >> b.txt 将 a.txt 中内容追加到 b.txt 中

    • ifconfig > ifconfig.txt 将 ifconfig 的内容覆盖到 ifconfig.txt 中

    6.4 系统管理命令

    • ps 正在运行的某个进程的状态
      • ps –ef 查看所有进程
      • ps –ef | grep ssh 查找某一进程
    • kill 杀掉某一进程
      • kill 2868 杀掉 2868 编号的进程
      • kill -9 2868 强制杀死进程

    6.5 管道 |

    作用

    管道是 Linux 命令中重要的一个概念,其作用是将一个命令的输出用作另一个命令的输入。

    用法

    • ls --help | more 分页查询帮助信息
    • ps –ef | grep java 查询名称中包含 Java 的进程

    7. Linux 的权限命令

    7.1 文件权限

    在这里插入图片描述

    从上图可以看到文件的权限分为了四部分:

    • 文件类型
      • - 表示文件
      • d 表示文件夹
      • l 表示链接
    • 属主权限
      • r 读 4
      • w 写 2
      • x 可执行 1
    • 属组权限
      • r 读 4
      • w 写 2
      • x 可执行 1
    • 其他用户权限
      • r 读 4
      • w 写 2
      • x 可执行 1

    7.2 变更文件的权限

    作用

    chmod 变更文件或目录的权限。

    用法

    chmod 755 a.txt 更改文件权限为 -rwxr-xr-x

    8. Linux 上常用网络操作

    8.1 主机名配置

    • hostname 查看主机
    • hostname xxx 修改主机名为 xxx,重启后无效
    • 修改 etc/sysconfig/network 文件中的 HOSTNAME,可以永久修改主机名

    8.2 IP 地址配置

    在这里插入图片描述

    可以看到当前使用的是 eth0 这个网卡以及 IP 地址,但这个 IP 地址是自动分配的,也就是说每次开机后,IP 地址可能会改变,这样很不方便,所以我们需要配置静态 IP 地址。

    配置静态 IP 地址

    1. vim /etc/sysconfig/network-scripts/ifcfg-eth0

      在这里插入图片描述

    2. i 进入输入模式,修改 BOOTPROTP=“static”,添加 IPADDR,NETMASK,GATEWAY

      在这里插入图片描述

    8.3 网络服务管理

    • service network status 查看指定服务的状态
    • service network stop 停止指定服务
    • service network start 启动指定服务
    • service network restart 重启制定服务

    防火墙设置

    • service iptables status 查看防火墙状态
    • service iptables stop 关闭防火墙
    • service iptables 启动防火墙
    展开全文
  • Linux之使用命令行创建用户和管理用户组 一、管理用户账户 1. 添加用户账户 命令格式 useradd [选项] <用户名> 选项: -d 用于指定用户主目录; -g 用于指定用户所属主要组; -G 用于指定用户所属其他组列表,...
  • linux删除用户组命令-----groupdel

    千次阅读 2020-02-27 16:31:23
    groupdel命令用于删除指定的工作,本命令要修改的系统文件包括/etc/group和/etc/gshadow。 userdel修改系统账户文件,删除与 GROUP 相关的所有项目。给出的名必须存在。若该群组中仍包括某些用户,则必须先删除...
  • 3天1文手把手带你结合10个命令27个实例彻底整明白Linux用户组管理
  • Linux系统下的用户和用户组的创建和管理

    千次阅读 多人点赞 2020-07-04 09:53:42
    Linux用户和用户组的创建和管理一. Linux用户身份概述1.1 Linux用户介绍1.2 Linux用户相关文件1.3 三个重要passwd,shadow,group文件的介绍二. 创建Linux用户2.1 添加Linux用户——adduser /useradd2.2 设置Linux...
  • Linux初学者面试问题 Linux基本面试问题 1.什么是Linux? 回答:Linux是基于Linux内核的操作系统。它是一个开源操作系统,可以在不同的硬件平台上运行。它为用户提供了免费的低成本操作系统。这是一个用户友好的...
  • Linux用户管理以及查看用户命令

    千次阅读 2019-06-19 15:28:07
    一、用户管理命令相关命令:useradd、userdel、usermod、passwd、chsh、chfn、finger、id、chage、newgrp1、useradd命令1)功能:[root@localhost/]#whatisuseradd useradd(8)-创建一个新用户或更新默认新用户信息2...
  • ·用户Linux系统工作中重要的一环, 用户管理包括 用户 管理 ·在Linux系统中, 不论是由本级或是远程登录系统, 每个系统都必须拥有一个账号, 并且对于不同的系统资源拥有不同的使用权限 ·对 文件 / 目录 的...
  • Linux 用户/用户组 管理(添加/删除)

    千次阅读 2018-09-23 01:16:05
    新增加一个用户并将其列入一个已有的用户组中需要用到 useradd 命令。如果还没有这个用户组,可以先创建该用户组命令参数如下: useradd -G {group-name} username 例如,我们要创建一个新用户 cnzhx 并将其...
  • linux创建文件

    万次阅读 多人点赞 2019-07-14 21:11:06
    它通常用于重定向一个命令的输出到一个新文件中。在没有命令的情况下使用重定向符号时,它会创建一个文件。 但是它允许你在创建文件时向其中输入任何文本。然而它对于不是很勤劳的管理员是非常简单有用的。只需要...
  • linux 用户及用户组管理命令详解

    千次阅读 2016-02-17 16:28:28
    添加用户useradd 命令可以创建一个新的用户帐号,其最基本用法为: useradd 用户名 如输入以下命令: adduser newuser useradd newuser 系统将创建一个新用户 newuser,该用户的Home 目录为/home/newuser。 ...
  • Linux总结

    千次阅读 多人点赞 2020-01-14 20:36:45
    一 、从认识操作系统开始 1.1 操作系统简介 1.2 操作系统简单分类 二 、初探Linux 2.1 Linux简介 ...四 、Linux基本命令 4.1 目录切换命令 4.2 目录的操作命令(增删改查) 4.3 文件的操作命令(增删...
  • Linux用户与用户组配置文件详解

    千次阅读 2019-03-30 13:41:32
    作为一个Linux管理员,对用户增删改查等操作当然离开用户与用户组的配置文件了,熟练的掌握与运用用户与用户组的配置文件是必可少的学习一步,接下来我会详细介绍用户与用户组的配置文件。 1、与用户有关的配置...
  • linux用户组管理命令

    千次阅读 2018-03-22 20:20:21
    useradd命令 useradd 命令用于创建新的用户,格式为:useradd [选项] 用户名。 参数 作用 ... 指定用户的家目录(默认为/home/username) ... 指定一个初始用户组(必须已存在) ... 指定一个或多个扩展用户组...
  • Linux(centos7)用户和用户组管理

    千次阅读 2018-11-08 23:48:31
    Linux是一个多用户操作系统,可以允许多个用户同时登陆同一台Linux主机,本介绍一下Linux用户组的创建、修改和删除,用户的创建、更改和删除 本文开始: 1.本文基于Windows10系统 2.本文基于Windows10的虚拟机...
  • From:... 鸟哥官网 Linux 帐号管理与 ACL 权限设定:http://linux.vbird.org/linux_basic/0410accountmanager.php 鸟哥官网(简体中文):http://cn.linux.vbird.org/linux_ba...
  • linux 中磁盘管理命令

    千次阅读 2017-08-11 10:18:44
    linux 中磁盘管理命令,fdisk:强大的磁盘分区工具.badblocks:检查设备坏块 ; 磁盘管理命令;du:统计文件和目录占用的磁盘空间;df:显示文件系统磁盘空间使用情况;mkfs:设置磁盘的文件系统;pvdisplay:查看组成LVM...
  • Linux学习笔记5—Linux常用命令用户、权限管理 引言 用户是Unix/Linux系统工作中重要的一环,用户管理包括用户账号的管理。 在Unix/Linux系统中,不论是由本机或是远程登录系统,每个系统都必须...
  • Linux中添加、修改、删除用户和用户组

    万次阅读 多人点赞 2018-06-20 14:11:15
    一、用户:在创建用户时,需要为新建用户指定一用户组,如果指定其用户所属的工作组,自动会生成一个与用户名同名的工作组。创建用户user1的时候指定其所属工作组users,例:useradd –g users user11、使用命令 ...
  • Linux id 命令 - 显示用户id和id信息

    万次阅读 2017-05-24 15:10:00
    Linux id命令用于显示用户的ID,以及所属群组的ID。 id会显示用户以及所属群组的实际与有效ID。若两个ID相同,则仅显示实际ID。若仅指定用户名称,则显示目前用户的ID。 语法 id [-gGnru][--help][--version]...
  • 实验报告4:用户和用户组管理

    万次阅读 2017-06-01 11:56:58
    实验报告四 ...Unix/Linux系统设计 ...用户管理 实验地点 615 实验类型 √验证型□设计型□综合型 学时 2 一、实验目的及要求(本实验所涉及并要求掌握的知识点)
  • Linux/CentOS用户和用户组及权限管理

    千次阅读 2018-08-20 18:04:48
    linux是一个多任务(multi-task)多用户(multi-user)的操作系统,每个用户和用户组都有自己的ID号UID GID,每个用户都有自己的家目录不能随意访问其他用户的家目录,管理员root除外。  用户的分类:(以centos7.x...
  • Linux用户(user)和用户组(group)管理用户/组基本概念与特性1.查看用户的uid/gid2.用户基本信息文件(1)用户名(2)密码(3)UID(4)GID(5)主目录(6)Shell3.用户的密码文件(1)用户名(2)加密密码(3)...
  • Linux 用户组管理详解 (软件 && 命令行)
  • Linux 用户组管理详解

    千次阅读 2017-03-26 19:38:44
    用户的分类 Linux系统对用户分配如下:  -系统管理员:root  -普通用户:普通用户分为以下两种  系统用户:系统用户通常是可登陆的,执行某些服务及进程的帐号  登录用户:一般用户,  我们登录...
  • 第五章-Linux实操篇

    千次阅读 多人点赞 2019-10-24 18:45:20
    title: 第五章 Linux实操篇 categories: Linux tags: linux typora-root-url: … abbrlink: 93414991 date: 2019-08-15 15:27:58 第五章 Linux实操篇 远程登录Linux系统 5.1 为什么要远程登录服务器 5.2 xhell5...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 232,921
精华内容 93,168
关键字:

linux不能用于用户组管理的命令是

linux 订阅