精华内容
下载资源
问答
  • 一、Linux系统目录结构 系统启动必须: /boot:存放的启动Linux 时使用的内核文件,包括连接文件以及镜像文件。 /etc:存放所有的系统需要的配置文件和子目录列表,更改目录下的文件可能会导致系统不能启动。 /lib...

    一、Linux系统目录结构

    在这里插入图片描述

    系统启动必须:

    /boot:存放的启动Linux 时使用的内核文件,包括连接文件以及镜像文件。
    /etc:存放所有的系统需要的配置文件和子目录列表,更改目录下的文件可能会导致系统不能启动。
    /lib:存放基本代码库(比如c++库),其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。
    /sys: 这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统 sysfs 。sysfs文件系统集成了下面3种文件系统的信息:针对进程信息的proc文件系统、针对设备的devfs文件系统以及针对伪终端的devpts文件系统。该文件系统是内核设备树的一个直观反映。当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中

    指令集合:

    /bin:存放着最常用的程序和指令
    /sbin:只有系统管理员能使用的程序和指令。
    外部文件管理:
    /dev :Device(设备)的缩写, 存放的是Linux的外部设备。注意:在Linux中访问设备和访问文件的方式是相同的。
    /media:类windows的其他设备,例如U盘、光驱等等,识别后linux会把设备放到这个目录下。
    /mnt:临时挂载别的文件系统的,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容了。

    临时文件:

    /run:是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。如果你的系统上有 /var/run 目录,应该让它指向 run。
    /lost+found:一般情况下为空的,系统非法关机后,这里就存放一些文件。
    /tmp:这个目录是用来存放一些临时文件的。

    账户:

    /root:系统管理员的用户主目录。
    /home:用户的主目录,以用户的账号命名的。
    /usr:用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录。
    /usr/bin:系统用户使用的应用程序与指令。
    /usr/sbin:超级用户使用的比较高级的管理程序和系统守护程序。
    /usr/src:内核源代码默认的放置目录。

    运行过程中要用:

    /var:存放经常修改的数据,比如程序运行的日志文件(/var/log 目录下)。
    /proc:管理内存空间!虚拟的目录,是系统内存的映射,我们可以直接访问这个目录来,获取系统信息。这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件来做修改。

    扩展用的:

    /opt:默认是空的,我们安装额外软件可以放在这个里面。
    /srv:存放服务启动后需要提取的数据(不用服务器就是空)

    二、linux 文件的基本属性

    Linux 系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限。

    为了保护系统的安全性,Linux 系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定。

    chown (change ownerp) : 修改所属用户与组。
    chmod (change mode) : 修改用户的权限。
    

    在 Linux 中我们可以使用 ll 或者 ls –l 命令来显示一个文件的属性以及文件所属的用户和组,如:

    [root@www /]# ls -l
    total 64
    dr-xr-xr-x   2 root root 4096 Dec 14  2012 bin
    dr-xr-xr-x   4 root root 4096 Apr 19  2012 boot
    ……
    

    实例中,bin 文件的第一个属性用 d 表示。d 在 Linux 中代表该文件是一个目录文件。

    在 Linux 中第一个字符代表这个文件是目录、文件或链接文件等等。

    当为 d 则是目录
    当为 - 则是文件;
    若是 l 则表示为链接文档(link file);
    若是 b 则表示为装置文件里面的可供储存的接口设备(可随机存取装置);
    若是 c 则表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)。
    接下来的字符中,以三个为一组,且均为 rwx 的三个参数的组合。其中, r 代表可读(read)、 w 代表可写(write)、 x 代表可执行(execute)。 要注意的是,这三个权限的位置不会改变,如果没有权限,就会出现减号 - 而已。
    在这里插入图片描述
    每个文件的属性由左边第一部分的 10 个字符来确定(如下图)。
    在这里插入图片描述

    从左至右用 0-9 这些数字来表示。

    第 0 位确定文件类型,第 1-3 位确定属主(该文件的所有者)拥有该文件的权限。

    第4-6位确定属组(所有者的同组用户)拥有该文件的权限,第7-9位确定其他用户拥有该文件的权限。
    其中,第 1、4、7 位表示读权限,如果用 r 字符表示,则有读权限,如果用 - 字符表示,则没有读权限;

    第 2、5、8 位表示写权限,如果用 w 字符表示,则有写权限,如果用 - 字符表示没有写权限;第 3、6、9 位表示可执行权限,如果用 x 字符表示,则有执行权限,如果用 - 字符表示,则没有执行权限。

    Linux文件属主和属组

    [root@www /]# ls -l
    total 64
    drwxr-xr-x 2 root  root  4096 Feb 15 14:46 cron
    drwxr-xr-x 3 mysql mysql 4096 Apr 21  2014 mysql
    ……
    

    对于文件来说,它都有一个特定的所有者,也就是对该文件具有所有权的用户。

    同时,在Linux系统中,用户是按组分类的,一个用户属于一个或多个组

    文件所有者以外的用户又可以分为文件所有者的同组用户和其他用户。

    因此,Linux系统按文件所有者、文件所有者同组用户和其他用户来规定了不同的文件访问权限。

    在以上实例中,mysql 文件是一个目录文件,属主和属组都为 mysql,属主有可读、可写、可执行的权限;与属主同组的其他用户有可读和可执行的权限;其他用户也有可读和可执行的权限。

    对于 root 用户来说,一般情况下,文件的权限对其不起作用。

    查看用户组里有哪些用户

    cat /etc/passwd
    

    cat /etc/passwd查看所有的用户信息,
    在这里插入图片描述

    cat /etc/group
    

    cat /etc/group查看所有组信息

    cat /etc/group   |grep 组名
    

    cat /etc/group|grep 组名,用于查找某个用户组,

    用户和组常用命令

    groups 查看当前登录用户的组内成员
    
    groups test 查看test用户所在的组,以及组内成员
    
    whoami 查看当前登录用户名
    

    在这里插入图片描述

    更改文件属性

    1、chgrp:更改文件属组
    语法:

    chgrp [-R] 属组名 文件名
    

    参数选项

    -R:递归更改文件属组,就是在更改某个目录文件的属组时,如果加上-R的参数,那么该目录下的所有文件的属组都会更改

    2、chown:更改文件属主,也可以同时更改文件属组
    语法:

    chown [–R] 属主名 文件名
    chown [-R] 属主名:属组名 文件名
    

    进入 /root 目录(~)将install.log的拥有者改为bin这个账号:

    [root@www ~] cd ~
    [root@www ~]# chown bin install.log
    [root@www ~]# ls -l
    -rw-r--r--  1 bin  users 68495 Jun 25 08:53 install.log
    

    将install.log的拥有者与群组改回为root:

    [root@www ~]# chown root:root install.log
    [root@www ~]# ls -l
    -rw-r--r--  1 root root 68495 Jun 25 08:53 install.log
    

    3、chmod:更改文件9个属性

    Linux文件属性有两种设置方法,一种是数字,一种是符号。

    Linux 文件的基本权限就有九个,分别是 owner/group/others(拥有者/组/其他) 三种身份各有自己的 read/write/execute 权限。

    先复习一下刚刚上面提到的数据:文件的权限字符为: -rwxrwxrwx , 这九个权限是三个三个一组的!其中,我们可以使用数字来代表各个权限,各权限的分数对照表如下:

    r:4
    w:2
    x:1

    每种身份(owner/group/others)各自的三个权限(r/w/x)分数是需要累加的,例如当权限为: -rwxrwx--- 分数则是:

    owner = rwx = 4+2+1 = 7
    group = rwx = 4+2+1 = 7
    others= — = 0+0+0 = 0

    所以等一下我们设定权限的变更时,该文件的权限数字就是 770。变更权限的指令 chmod 的语法是这样的:

     chmod [-R] xyz 文件或目录
    

    选项与参数:

    xyz : 就是刚刚提到的数字类型的权限属性,为 rwx 属性数值的相加。
    -R : 进行递归(recursive)的持续变更,亦即连同次目录下的所有文件都会变更

    举例来说,如果要将 .bashrc 这个文件所有的权限都设定启用,那么命令如下:

    [root@www ~]# ls -al .bashrc
    -rw-r--r--  1 root root 395 Jul  4 11:45 .bashrc
    [root@www ~]# chmod 777 .bashrc
    [root@www ~]# ls -al .bashrc
    -rwxrwxrwx  1 root root 395 Jul  4 11:45 .bashrc
    

    那如果要将权限变成 -rwxr-xr-- 呢?那么权限的分数就成为 [4+2+1][4+0+1][4+0+0]=754

    符号类型改变文件权限(少用到)

    还有一个改变权限的方法,从之前的介绍中我们可以发现,基本上就九个权限分别是:

    user:用户
    group:组
    others:其他
    那么我们就可以使用 u, g, o 来代表三种身份的权限

    此外, a 则代表 all,即全部的身份。读写的权限可以写成 r, w, x,也就是可以使用下表的方式来看:
    在这里插入图片描述
    如果我们需要将文件权限设置为 -rwxr-xr-- ,可以使用 chmod u=rwx,g=rx,o=r 文件名 来设定:

    #  touch test1    // 创建 test1 文件
    # ls -al test1    // 查看 test1 默认权限
    -rw-r--r-- 1 root root 0 Nov 15 10:32 test1
    # chmod u=rwx,g=rx,o=r  test1    // 修改 test1 权限
    # ls -al test1
    -rwxr-xr-- 1 root root 0 Nov 15 10:32 test1
    

    而如果是要将权限去掉而不改变其他已存在的权限呢?例如要拿掉全部人的可执行权限,则:

    #  chmod  a-x test1
    # ls -al test1
    -rw-r--r-- 1 root root 0 Nov 15 10:32 test1
    
    展开全文
  • Linux文件权限,属属组

    千次阅读 2018-11-22 15:24:19
    Linux文件中,每一个文件夹或者是文件,都有权限进行控制其是否可读,可写,可执行。并且对操作者的权限也有设定。今天学习了该部分内容,做一个记录。 首先,指令:ll 看一年Linux下的一个文件夹内容: r w x...

    在Linux文件中,每一个文件夹或者是文件,都有权限进行控制其是否可读,可写,可执行。并且对操作者的权限也有设定。今天学习了该部分内容,做一个记录。

    首先,指令:ll 看一年Linux下的一个文件夹内容:

    r w x :是否可读,是否可写,是否可执行。

    总结一下如下表格:

    r w x

    r w x

    r w x

    -  -  -

    -  -  -

    -  -  -

    属主

    属组

    其他

    根据不同的所属,对rwx进行赋值,如果可执行,则对应字母进行填写,否则以“-”代替。同时可以对权限进行重新设置。

    Linux命令:

    chmod 权限 文件

    例如现在有一个a.txt文件,其基本权限为:

    -rw-r--r-- 1 root root        0 Nov 22 14:50 a.txt

    现在将他设置为属主可读可写可操作,属组可读可写,其余不变,那么就写如下命令即可:

    chomd 764 a.txt

    这里的764代表属主,属组,其他分别得二进制数。

    rwx对应二进制总结如下:

    --- 000 无权限 0
    --x 001 只可执行 1
    -w- 010 只可写 2
    -wx 011 可写可执行,不可读 3
    r-- 100 只可读 4
    r-x 101 可读可执行,不可写 5
    rw- 110 可读可写,不可执行 6
    rwx 111 可读可写可执行 7

     

    展开全文
  • //系统环境 ...CentOS Linux release 7.5.1804 (Core) # uname -r 3.10.0-862.el7.x86_64 //SELinux 设置 # setenforce 0 # sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/confi...
    //系统环境
    # cat /etc/redhat-release 
    CentOS Linux release 7.5.1804 (Core)
    # uname -r
    3.10.0-862.el7.x86_64
    //SELinux 设置
    # setenforce 0
    # sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
    //校准时间的定时任务
    # crontab -l
    01 */3 * * * /usr/sbin/ntpdate time1.aliyun.com && clock -w
    
    //useradd命令的man信息
    useradd - 创建一个新用户或更新默认新用户信息
    
    
    useradd [选项] 登录
    
    useradd -D
    
    useradd -D [选项]
    
    
    如果使用时不带 -D 选项,useradd 命令使用命令行上指定的值和系统的默认值创建一个新用户。根据命令行选项,useradd
    命令也会更新系统文件和创建新用户的主目录并复制初始文件。
    
    默认上,也会为用户创建组 (察看 -g, -N, -U,和 USERGROUPS_ENAB)。
    
    
    useradd 可以使用的选项有:
    
    -b, --base-dirBASE_DIR
        The default base directory for the system if -dHOME_DIR is not specified.  BASE_DIR is concatenated with
        the account name to define the home directory. The BASE_DIR must exist otherwise the home directory cannot
        be created.
    
        如果选项没有指定,useradd 将使用 /etc/default/useradd 中的 HOME 变量,或者默认的 /home。
    
    -c, --commentCOMMENT
        任何字符串。通常是关于登录的简短描述,当前用于用户全名。
    
    -d, --home-dir HOME_DIR
        The new user will be created using HOME_DIR as the value for the user's login directory. The default is to
        append the LOGIN name to BASE_DIR and use that as the login directory name.
    
    -D, --defaults
        看下边,“更改默认值”子节。
    
    -e, --expiredateEXPIRE_DATE
        用户账户将被禁用的日期。日期以 YYYY-MM-DD 格式指定。
    
        如果没有指定,useradd 将使用 /etc/default/useradd 中 EXPIRE
        变量指定的默认过期日期,或者一个空字符串(不过期)。
    
    -f, --inactiveINACTIVE
        密码过期后,账户被彻底禁用之前的天数。0 表示立即禁用,-1 表示禁用这个功能。
    
        如果未指定,useradd 将使用 /etc/default/useradd 中的 INACTIVE 指定的默认禁用周期,或者默认为 -1。
    
    -g, --gidGROUP
        用户初始登陆组的组名或号码。组名必须已经存在。组号码必须指代已经存在的组。
    
        如果没有指定, useradd 的行为将依赖于 /etc/login.defs 文件中的 USERGROUPS_ENAB 参数。如果此参数设置为了
        yes (或者在命令行上指定了 -U/--user-group),将会为用户创建一个组,组名和登录名相同。如果选项设置为了 no
        (或者在命令行上指定了 -N/--no-user-group),useradd 会把新用户的主组设置为 /etc/default/useradd 中 GROUP
        变量指定的值,再或者默认是 100。
    
    -G, --groupsGROUP1[,GROUP2,...[,GROUPN]]]
        用户还属于的附加组列表。每个组都用逗号隔开,没有中间的空格。这里的组受到了 -g
        选项给定的组同样的限制。默认上,用户只属于初始组。
    
    -h, --help
        现实帮助信息并退出。
    
    -k, --skelSKEL_DIR
        骨架目录,包含使用 useradd 创建用户时,要复制到用户主目录中的文件和目录。
    
        这个选项只有在指定 -m (或 --create-home) 选项时才有效。
    
        如果此项没有设置,骨架目录使用 /etc/default/useradd 中的 SKEL 的变量或默认为 /etc/skel。
    
        如果可以,也复制 ACL 和扩展属性。
    
    -K, --keyKEY=VALUE
        默认覆盖 /etc/login.defs (UID_MIN, UID_MAX, UMASK, PASS_MAX_DAYS 及其它)。 例如:-K PASS_MAX_DAYS=-1
        可以用于创建一个密码不会过期的系统账户,即使系统账户没有密码。可以指定多个 -K 选项,如:-K UID_MIN=100-K
        UID_MAX=499
    
    -l, --no-log-init
        不要将用户添加到最近登录和登录失败数据库。
    
        默认上,最近登录和登录失败中用户的条目会被重置,以避免重新使用先前删除的用户的条目。
    
    -m, --create-home
        如果不存在,则创建用户主目录。骨架目录中的文件和目录(可以使用 -k 选项指定),将会复制到主目录。
    
        默认上,如果没有指定此选项并且 CREATE_HOME 没有启用,不会创建主目录。
    
        The directory where the user's home directory is created must exist and have proper SELinux context and
        permissions. Otherwise the user's home directory cannot be created or accessed.
    
    -M, --no-create-home
        Do not create the user's home directory, even if the system wide setting from /etc/login.defs
        (CREATE_HOME) is set to yes.
    
    -N, --no-user-group
        不要创建同名组,而是将用户添加到 -g 选项指定的组,或根据 /etc/default/useradd 中的 GROUP 变量。
    
        如果没有指定 -g, -N 和 -U 选项,默认行为由 /etc/login.defs 中的 USERGROUPS_ENAB 变量指定。
    
    -o, --non-unique
        允许使用重复的 UID 创建用户账户。
    
        此选项只有和 -u 选项组合使用才有效。
    
    -p, --passwordPASSWORD
        加密了的密码,就像 crypt(3) 的返回值。默认为禁用密码。
    
        注
    
        您应该确保密码符合系统的密码政策。
    
    -r, --system
        创建一个系统账户。
    
        System users will be created with no aging information in /etc/shadow, and their numeric identifiers are
        chosen in the SYS_UID_MIN-SYS_UID_MAX range, defined in /etc/login.defs, instead of UID_MIN-UID_MAX (and
        their GID counterparts for the creation of groups).
    
        注意:useradd 不会为这种用户创建主目录,无论 /etc/login.defs (CREATE_HOME)
        中是的默认设置是怎样。如果想为要创建的系统账户创建主目录,需要指定 -m 选项。
    
    -R, --rootCHROOT_DIR
        Apply changes in the CHROOT_DIR directory and use the configuration files from the CHROOT_DIR directory.
    
    -s, --shellSHELL
        用户的登录 shell 名。默认为留空,让系统根据 /etc/default/useradd 中的 SHELL 变量选择默认的登录
        shell,默认为空字符串。
    
    -u, --uidUID
        用户 ID 的数字值。此值必须为唯一的,除非使用了 -o 选项。此值必须非负,默认使用大于等于
        UID_MIN,且大于任何其他用户 ID 最小值。
    
        请参考 -r 选项和 UID_MAX 的描述。
    
    -U, --user-group
        创建一个和用户同名的组,并将用户添加到组中。
    
        如果没有指定 -g, -N 和 -U 选项,默认行为由 /etc/login.defs 中的 USERGROUPS_ENAB 变量指定。
    
    -Z, --selinux-userSEUSER
        用户登陆的 SELinux 用户。默认为留空,这会造成系统选择默认的 SELinux 用户。
    
    
    只带 -D 选项使用时,useradd 将显示当前的默认值。-D 和其它选项配合使用时,useradd
    将为指定的选项更新默认值。有效的“更改默认值”选项有:
    
    -b, --base-dirBASE_DIR
        新用户主目录的路径前缀。如果创建新账户时,没有使用 -d 选项,用户的名称将会缀在 BASE_DIR
        的后边形成新用户的主目录名。
    
        这个选择在 /etc/default/useradd 中设置 HOME 选项。
    
    -e, --expiredateEXPIRE_DATE
        禁用此用户账户的日期。
    
        此选项在 /etc/default/useradd 中设置 EXPIRE 变量。
    
    -f, --inactiveINACTIVE
        密码过期到账户被禁用之前的天数。
    
        这个选项在 /etc/default/useradd 中设置 INACTIVE 变量。
    
    -g, --gidGROUP
        新用户初始组的组名或 ID (使用了 -N/--no-user-group 或者 /etc/login.defs 中的变量 USERGROUPS_ENAB 设置为 no
        时)。给出的组必须存在,并且数字组 ID 必须有一个已经存在的项。
    
        这个选项在 /etc/default/useradd 中设置 GROUP 变量。
    
    -s, --shellSHELL
        新用户的登录 shell 名。
    
        这个选项在 /etc/default/useradd 设置 SHELL 变量。
    
    
    系统管理员负责将默认的用户文件放在 /etc/skel/ 目录中(或者命令行上、/etc/default/useradd中指定的任何其它目录)。
    
    CAVEATS
    您可能不能想 NIS 组或 LDAP 组添加用户。这只能在相应服务器上进行。
    
    相似地,如果用户名已经存在于外部用户数据库中,比如 NIS 或 LDAP,useradd 将拒绝创建用户账户的请求。
    
    用户名不能超过 32 个字符长。
    
    
    在 /etc/login.defs 中有如下配置变量,可以用来更改此工具的行为:
    
    CREATE_HOME (boolean)
        指示是否应该为新用户默认创建主目录。
    
        此设置并不应用到系统用户,并且可以使用命令行覆盖。
    
    GID_MAX (number), GID_MIN (number)
        useradd,groupadd 或 newusers 创建的常规组的组 ID 的范围。
    
        GID_MIN 和 GID_MAX 的默认值分别是 1000 和 60000。
    
    MAIL_DIR (string)
        邮箱目录。修改或删除用户账户时需要处理邮箱,如果没有指定,将使用编译时指定的默认值。
    
    MAIL_FILE (string)
        定义用户邮箱文件的位置(相对于主目录)。
    
    MAIL_DIR and MAIL_FILE 变量由 useradd,usermod 和 userdel 用于创建、移动或删除用户邮箱。
    
    如果 MAIL_CHECK_ENAB 设置为 yes,它们也被用于定义 MAIL 环境变量。
    
    MAX_MEMBERS_PER_GROUP (number)
        每个组条目的最大成员数。达到最大值时,在 /etc/group 开始一个新条目(行)(使用同样的名称,同样的密码,同样的
        GID)。
    
        默认值是 0,意味着组中的成员数没有限制。
    
        此功能(分割组)允许限制组文件中的行长度。这对于确保 NIS 组的行比长于 1024 字符。
    
        如果要强制这个限制,可以使用 25。
    
        注意:分割组可能不受所有工具的支持(甚至在 Shadow 工具集中)。您不应该使用这个变量,除非真的需要。
    
    PASS_MAX_DAYS (number)
        一个密码可以使用的最大天数。如果密码比这旧,将会强迫更改密码。如果不指定,就假定为 -1,这会禁用这个限制。
    
    PASS_MIN_DAYS (number)
        两次更改密码时间的最小间隔。将会拒绝任何早于此的更改密码的尝试。如果不指定,假定为 -1,将会禁用这个限制。
    
    PASS_WARN_AGE (number)
        密码过期之前给出警告的天数。0 表示只有只在过期的当天警告,负值表示不警告。如果没有指定,不会给警告。
    
    SYS_GID_MAX (number), SYS_GID_MIN (number)
        useradd、groupadd 或 newusers 创建的系统组的组 ID 的范围。
    
        SYS_GID_MIN 和 SYS_GID_MAX 的默认值分别是 101 和 GID_MIN-1。
    
    SYS_UID_MAX (number), SYS_UID_MIN (number)
        useradd 或 newusers 创建的系统用户的用户 ID 的范围。
    
        SYS_UID_MIN 和 SYS_UID_MAX 的默认值分别是 101 和 UID_MIN-1。
    
    UID_MAX (number), UID_MIN (number)
        useradd 或 newusers 创建的普通用户的用户 ID 的范围。
    
        UID_MIN 和 UID_MAX 的默认值分别是 1000 和 60000。
    
    UMASK (number)
        文件模式创建掩码初始化为此值。如果没有指定,掩码初始化为 022。
    
        useradd 和 newusers 使用此掩码设置它们创建的用户主目录的模式。
    
        也被 login 用于指定用户的初始 umask。注意,此掩码可以被用户的 GECOS 行覆盖(当设置了 QUOTAS_ENAB
        时),也可以被带 K 指示符的 limits(5) 定义的限制值覆盖。
    
    USERGROUPS_ENAB (boolean)
        如果 uid 和 gid 相同,用户名和主用户名也相同,使非 root 组的组掩码位和属主位相同 (如:022 -> 002, 077 ->
        007)。
    
        如果设置为 yes,如果组中没有成员了,userdel 将移除此用户组,useradd 创建用户时,也会创建一个同名的默认组。
    
    
    /etc/passwd
        用户账户信息。
    
    /etc/shadow
        安全用户账户信息。
    
    /etc/group
        组账户信息。
    
    /etc/gshadow
        安全组账户信息。
    
    /etc/default/useradd
        账户创建的默认值。
    
    /etc/skel/
        包含默认文件的目录。
    
    /etc/login.defs
        Shadow 密码套件配置。
    
    
    useradd 可以返回如下值:
    
    0
        成功
    
    1
        无法更新密码文件
    
    2
        无效的命令语法
    
    3
        给了选项一个无效的参数
    
    4
        UID 已经使用 (且没有 -o)
    
    6
        指定的组不存在
    
    9
        用户名已被使用
    
    10
        无法更新组文件
    
    12
        无法创建主目录
    
    14
        can't update SELinux user mapping
     
    
    //新增用户testuser赋予root权限 
    //方法一: 修改 /etc/sudoers 文件,找到下面一行,把前面的注释(#)去掉
    ## Allows people in group wheel to run all commands
    %wheel    ALL=(ALL)    ALL
    //然后修改用户,使其从属于root组(wheel),命令如下:
    #usermod -g root testuser
    //修改完毕,现在可以用testuser帐号登录,然后用命令 su - ,即可获得root权限进行操作。
    
    //方法二(推荐使用): 修改 /etc/sudoers 文件,找到下面一行,在root下面添加一行,如下所示:
    ## Allow root to run any commands anywhere
    root    ALL=(ALL)     ALL
    testuser   ALL=(ALL)     ALL
    //修改完毕,现在可以用testuser帐号登录,然后用命令 su - ,即可获得root权限进行操作。
    
    //方法三: 修改 /etc/passwd 文件,找到如下行,把UID修改为 0 ,如下所示:
    testuser:x:500:500:testuser:/home/user/testuser:/bin/bash
    //修改后如下
    testuser:x:0:500:testuser:/home/user/testuser:/bin/bash
    //保存,用testuser账户登录后,直接获取的就是root帐号的权限。
    
    //创建admin用户并获取sudo权限
    //创建用户属组
    # groupadd operation
    //查看验证
    # tail -n 5 /etc/group
    //创建用户admin 指定组 operation 指定附加组 root 指定家目录
    # useradd -g operation -G root -d /home/user/admin admin
    //修改admin目录权限
    # chmod -R 766 /home/user/admin
    //修改admin用户密码
    # passwd admin
    //修改 /etc/sudoers 文件,找到下面一行,在root下面添加一行,强制保存退出,如下所示:
    ## Allow root to run any commands anywhere
    root    ALL=(ALL)     ALL
    admin	ALL=(ALL)	ALL
    
    //admin用户如需修改没有权限的文件需要在命令前添加sudo,如
    $ sudo touch text.txt
    
    展开全文
  • 解决Linux目录空间不足

    千次阅读 2021-02-22 18:57:08
    另一部份是 block,block是用来存储数据用的,而inode就是用来存储这些数据的信息,这些信息包括文件大小、属主、归属的用户、读写权限等。inode为每个文件进行信息索引,所以就有了inode的数值。操作系统根据指令...

    根目录空间不足的原因

    1.1 inode已满

    block虽然还有剩余,但inode已经用满,因此在创建新目录或文件时,系统提示磁盘空间不足,inode译成中文就是索引节点,每个存储设备(例如硬盘)或存储设备的分区被格式化为文件系统后,应该有两部份,一部份是inode,另一部份是 block,block是用来存储数据用的,而inode就是用来存储这些数据的信息,这些信息包括文件大小、属主、归属的用户组、读写权限等。inode为每个文件进行信息索引,所以就有了inode的数值。操作系统根据指令,能通过inode值最快的找到相对应的文件。

    现象:

    使用df -Th有剩余空间但是无法继续使用
    (查看inode占用命令:df -i)
    在这里插入图片描述
    解决方法

    删除无用的临时文件,释放inode

    遍历寻找0字节的文件,并删除。

    find / -type f -size 0 -exec rm {} \;
    

    根目录下包括所有的目录,而有些目录是挂了盘的,这些目录不会占用根目录下的系统磁盘空间。
    出现根目录空间不足的情况只要关注那些未挂盘的文件大小,使用du命令查看各个目录的大小(只显示一层目录)

    1.2 大文件过多

    使用du命令查看各个目录的大小 (只显示一层目录)

    du -ah --max-depth=1 /

    在这里插入图片描述

    1.3 日志文件太多

    Linux系统运行时会产生日志文件,可以讲日志文件远程备份,或者是拷贝到其它的硬盘

    在这里插入图片描述
    如果以上方法都不可以,可以使用软连接的方法,或者是对根目录扩容

    解决方法

    2.1 软连接

    将占用空间大的目录复制到另一个磁盘上面,或者是nfs提供的存储上面

    例如
    一台服务器A(IP:20.0.0.105)上的/opt/nfs的文件过大,可以在另一台服务器B(IP:20.0.0.104)上安装nfs共享存储,然后将挂载。在把里面的东西拷贝过去。

    [root@serverb ~]# yum -y install nfs-utils rpcbind
    [root@serverb ~]# vi /etc/exports
    
    /opt 20.0.0.0/24(rw)
    [root@serverb ~]# systemctl start nfs
    
    [root@servera ~]# showmount -e 20.0.0.104
    Export list for 20.0.0.104:
    /opt 20.0.0.0/24
    [root@servera ~]# mkdir centos
    [root@servera ~]# mount 20.0.0.104:/opt /centos/
    [root@servera ~]# df -Th
    文件系统                类型      容量  已用  可用 已用% 挂载点
    ···········
    20.0.0.104:/opt         nfs4       39G  2.4G   36G    7% /centos
    [root@servera ~]# cp -R /opt/nfs/* /centos/
    [root@servera ~]# ln -s /centos/ /opt/nfs
    

    2.2:根目录扩容

    使用场景:设备的存储空间已占满,并且已经清理过了,而且其它硬盘均已满,服务器物理硬件支持添加硬盘

    添加一块新硬盘

    [root@localhost ~]# init 6  #硬盘很少有支持热插拔的,需要重启
    
    连接断开
    连接成功
    
    [root@localhost ~]# fdisk -l
    
    磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
    Units = 扇区 of 1 * 512 = 512 bytes
    扇区大小(逻辑/物理):512 字节 / 512 字节
    I/O 大小(最小/最佳):512 字节 / 512 字节
    
    
    磁盘 /dev/sda:64.4 GB, 64424509440 字节,125829120 个扇区
    Units = 扇区 of 1 * 512 = 512 bytes
    扇区大小(逻辑/物理):512 字节 / 512 字节
    I/O 大小(最小/最佳):512 字节 / 512 字节
    磁盘标签类型:dos
    磁盘标识符:0x0009ed77
    
       设备 Boot      Start         End      Blocks   Id  System
    /dev/sda1   *        2048     2099199     1048576   83  Linux
    /dev/sda2         2099200   125829119    61864960   8e  Linux LVM
    
    磁盘 /dev/mapper/centos-root:41.1 GB, 41120956416 字节,80314368 个扇区
    Units = 扇区 of 1 * 512 = 512 bytes
    扇区大小(逻辑/物理):512 字节 / 512 字节
    I/O 大小(最小/最佳):512 字节 / 512 字节
    
    
    磁盘 /dev/mapper/centos-swap:2147 MB, 2147483648 字节,4194304 个扇区
    Units = 扇区 of 1 * 512 = 512 bytes
    扇区大小(逻辑/物理):512 字节 / 512 字节
    I/O 大小(最小/最佳):512 字节 / 512 字节
    
    
    磁盘 /dev/mapper/centos-home:20.1 GB, 20073938944 字节,39206912 个扇区
    Units = 扇区 of 1 * 512 = 512 bytes
    扇区大小(逻辑/物理):512 字节 / 512 字节
    I/O 大小(最小/最佳):512 字节 / 512 字节
    
    
    [root@localhost ~]# fdisk /dev/sdb
    欢迎使用 fdisk (util-linux 2.23.2)。
    
    更改将停留在内存中,直到您决定将更改写入磁盘。
    使用写入命令前请三思。
    
    Device does not contain a recognized partition table
    使用磁盘标识符 0xf60c7ee0 创建新的 DOS 磁盘标签。
    
    命令(输入 m 获取帮助):n
    Partition type:
       p   primary (0 primary, 0 extended, 4 free)
       e   extended
    Select (default p): p
    分区号 (1-4,默认 1):
    起始 扇区 (2048-41943039,默认为 2048):
    将使用默认值 2048
    Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):
    将使用默认值 41943039
    分区 1 已设置为 Linux 类型,大小设为 20 GiB
    
    命令(输入 m 获取帮助):t
    已选择分区 1
    Hex 代码(输入 L 列出所有代码):8e
    已将分区“Linux”的类型更改为“Linux LVM”
    
    命令(输入 m 获取帮助):w
    The partition table has been altered!
    
    Calling ioctl() to re-read partition table.
    正在同步磁盘。
    
    
    [root@localhost ~]# mkfs -t xfs /dev/sdb1
    meta-data=/dev/sdb1              isize=512    agcount=4, agsize=1310656 blks
             =                       sectsz=512   attr=2, projid32bit=1
             =                       crc=1        finobt=0, sparse=0
    data     =                       bsize=4096   blocks=5242624, imaxpct=25
             =                       sunit=0      swidth=0 blks
    naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
    log      =internal log           bsize=4096   blocks=2560, version=2
             =                       sectsz=512   sunit=0 blks, lazy-count=1
    realtime =none                   extsz=4096   blocks=0, rtextents=0
    [root@localhost ~]# lvm
    lvm> pvcreate /dev/sdb1
    WARNING: xfs signature detected on /dev/sdb1 at offset 0. Wipe it? [y/n]: y
      Wiping xfs signature on /dev/sdb1.
      Physical volume "/dev/sdb1" successfully created.
    lvm> vgdisplay
      --- Volume group ---
      VG Name               centos
      System ID             
      Format                lvm2
      Metadata Areas        1
      Metadata Sequence No  4
      VG Access             read/write
      VG Status             resizable
      MAX LV                0
      Cur LV                3
      Open LV               3
      Max PV                0
      Cur PV                1
      Act PV                1
      VG Size               <59.00 GiB
      PE Size               4.00 MiB
      Total PE              15103
      Alloc PE / Size       15102 / 58.99 GiB
      Free  PE / Size       1 / 4.00 MiB
      VG UUID               Cnl1hp-dBeF-55rw-KU0p-co0L-FiSn-5Nrs2d
       
    lvm> vgextend centos /dev/sdb1
      Volume group "centos" successfully extended
    lvm> vgdisplay
      --- Volume group ---
      VG Name               centos
      System ID             
      Format                lvm2
      Metadata Areas        2
      Metadata Sequence No  5
      VG Access             read/write
      VG Status             resizable
      MAX LV                0
      Cur LV                3
      Open LV               3
      Max PV                0
      Cur PV                2
      Act PV                2
      VG Size               78.99 GiB
      PE Size               4.00 MiB
      Total PE              20222
      Alloc PE / Size       15102 / 58.99 GiB
      Free  PE / Size       5120 / 20.00 GiB
      VG UUID               Cnl1hp-dBeF-55rw-KU0p-co0L-FiSn-5Nrs2d
       
    lvm> lvextend -l +5120 /dev/mapper/centos-root
      Size of logical volume centos/root changed from <38.30 GiB (9804 extents) to <58.30 GiB (14924 extents).
      Logical volume centos/root successfully resized.
    lvm> lvdisplay
      --- Logical volume ---
      LV Path                /dev/centos/root
      LV Name                root
      VG Name                centos
      LV UUID                OeHFno-diSX-xWuQ-K8j6-tdpT-D0KE-YB3jxG
      LV Write Access        read/write
      LV Creation host, time localhost, 2021-02-01 22:26:07 -0500
      LV Status              available
      # open                 1
      LV Size                <58.30 GiB
      Current LE             14924
      Segments               3
      Allocation             inherit
      Read ahead sectors     auto
      - currently set to     8192
      Block device           253:0
       
      --- Logical volume ---
      LV Path                /dev/centos/home
      LV Name                home
      VG Name                centos
      LV UUID                ne6xL1-fepP-cE9h-WJzc-12Kw-FVzK-NNYU6i
      LV Write Access        read/write
      LV Creation host, time localhost, 2021-02-01 22:26:07 -0500
      LV Status              available
      # open                 1
      LV Size                <18.70 GiB
      Current LE             4786
      Segments               1
      Allocation             inherit
      Read ahead sectors     auto
      - currently set to     8192
      Block device           253:2
       
      --- Logical volume ---
      LV Path                /dev/centos/swap
      LV Name                swap
      VG Name                centos
      LV UUID                7mtj59-3PN7-1UbZ-QiJa-He5b-hGTz-SCpicW
      LV Write Access        read/write
      LV Creation host, time localhost, 2021-02-01 22:26:07 -0500
      LV Status              available
      # open                 2
      LV Size                2.00 GiB
      Current LE             512
      Segments               1
      Allocation             inherit
      Read ahead sectors     auto
      - currently set to     8192
      Block device           253:1
       
    lvm> exit
      Exiting.
    
    
    [root@localhost ~]# df -Th
    文件系统                类型      容量  已用  可用 已用% 挂载点
    /dev/mapper/centos-root xfs        39G  1.5G   37G    4% /
    devtmpfs                devtmpfs  898M     0  898M    0% /dev
    tmpfs                   tmpfs     910M     0  910M    0% /dev/shm
    tmpfs                   tmpfs     910M  9.6M  901M    2% /run
    tmpfs                   tmpfs     910M     0  910M    0% /sys/fs/cgroup
    /dev/sda1               xfs      1014M  146M  869M   15% /boot
    /dev/mapper/centos-home xfs        19G   33M   19G    1% /home
    tmpfs                   tmpfs     182M     0  182M    0% /run/user/0
    [root@localhost ~]# xfs_growfs /dev/mapper/centos-root 
    meta-data=/dev/mapper/centos-root isize=512    agcount=4, agsize=2509824 blks
             =                       sectsz=512   attr=2, projid32bit=1
             =                       crc=1        finobt=0 spinodes=0
    data     =                       bsize=4096   blocks=10039296, imaxpct=25
             =                       sunit=0      swidth=0 blks
    naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
    log      =internal               bsize=4096   blocks=4902, version=2
             =                       sectsz=512   sunit=0 blks, lazy-count=1
    realtime =none                   extsz=4096   blocks=0, rtextents=0
    data blocks changed from 10039296 to 15282176
    [root@localhost ~]# df -Th
    文件系统                类型      容量  已用  可用 已用% 挂载点
    /dev/mapper/centos-root xfs        59G  1.5G   57G    3% /
    devtmpfs                devtmpfs  898M     0  898M    0% /dev
    tmpfs                   tmpfs     910M     0  910M    0% /dev/shm
    tmpfs                   tmpfs     910M  9.6M  901M    2% /run
    tmpfs                   tmpfs     910M     0  910M    0% /sys/fs/cgroup
    /dev/sda1               xfs      1014M  146M  869M   15% /boot
    /dev/mapper/centos-home xfs        19G   33M   19G    1% /home
    tmpfs                   tmpfs     182M     0  182M    0% /run/user/0
    [root@localhost ~]# 
    

    在这里插入图片描述

    展开全文
  • Linux文件目录操作

    千次阅读 2018-10-24 17:48:45
    /* 属主 ID */ gid_t st_gid; /* ID */ dev_t st_rdev; /* 设备类型*/ off_t st_size; /* 文件大小,字节表示 */ blksize_t st_blksize; /* 块大小*/ blkcnt_t st_blocks; /* 块数 ...
  • LINUX目录结构

    千次阅读 2007-08-20 16:04:00
    A出处不详,到处转载不加出处的后果 -_-摘要 Linux安装完以后,会创建大量的目录,而对于初学者而言经常容易被吓坏,本文就对一个主要目录的作用进行一些介绍,帮助初学者认清它们。(2002-07-22 11:53:08) By 风过...
  • linux用户和管理

    2017-09-19 10:48:38
    linux用户和管理基础
  • linux普通用户获取root权限的方法

    千次阅读 2019-08-26 23:56:20
    三个特殊权限 方法1: t 粘滞位 (只对目录有效) 在目录中建立的文件只有文件的所属者可以删除。 ...sgid (只对目录有效) ...在目录中建立的文件或者目录属组会继承父目录属组 方法1 chmod 777 /tmp...
  • Linux下的用户、和权限

    万次阅读 多人点赞 2018-08-30 22:57:40
    目录 一:用户和信息的查看 查看用户信息 查看密码信息 查看信息 特殊wheel 二:用户和信息的管理 用户管理 管理 三:文件权限 文件权限的查看 文件权限的修改 ACL控制权限setfacl 、getfacl ...
  • Linux面试题(2020最新版)

    万次阅读 多人点赞 2020-03-01 11:14:38
    文章目录Linux 概述什么是LinuxUnix和Linux有什么区别?什么是 Linux 内核?Linux的基本组件是什么?Linux 的体系结构BASH和DOS之间的基本区别是什么?Linux 开机启动过程?Linux系统缺省的运行级别?Linux 使用的...
  • 文件权限设置: 可以赋于某个用户或组 能够以何种方式 访问某个文件 ...属: u 属组: g 其他人: o 权限类型: 读:r 4 写:w 2 执行: x 1 1.设置权限 更改文件的属属组 =chown: =c...
  • Linux系统的常用命令(Linux开机关机、Linux中的文件、Linux目录管理、Linux基本属性)
  • 学习Linux的同学都知道文件权限在Linux中是十分重要的,(谁让Linux的核心理念就是Everything is file呢),下面是我对权限的一些理解和总结: 基础权限有 r:read,w:write,x:execute 对于普通文件来说,rwx的...
  • linux一切皆文件:读写(目录,文件,Vim), 权限(用户,用户),系统(磁盘,进程) Linux 是一套免费使用和自由传播的类 Unix 操作系统,是一个基于 POSIX(可移植操作系统接口) 和 UNIX 的多用户、多任务、支持多...
  • Linux

    2020-09-25 21:34:46
    1.1 Linux的发行版本:1.2 Linux的服务器类型Linux 系统目录结构2.0 树状目录结构如下:2.1目录解释:Linux 文件基本属性3.0 在Linux中代表这个文件是目录、文件或链接文件等等。3.1 文件属性3.2 更改文件属性Linux ...
  • Linux目录/文件权限

    2013-05-25 08:48:53
    Linux目录文件权限 Linux系统中的每个文件和目录都有访问许可权限,用它来确定谁能通过何种方式对文件和目录进行访问和操作。文件或目录的访问权限分为只读,只写和可执行三种。 对目录(文件夹)设置权限是一件...
  • 用户基本概念 用户group,就是具有相同特征的用户的集合体。 【官方文档】 Users and groups: . Every process (running program) on the system runs as a particular user. . Every file is owned by ...
  • linux 设置用户ID、设置ID

    千次阅读 2016-03-12 10:55:35
    linux 设置用户ID、设置ID
  • 一、查看文件/目录权限及归属 二、设置文件/目录的权限 三、设置文件/目录的归属 1.1访问权限 1.可读(read):允许查看cat文件内容、显示目录列表 2.可写(write):允许修改文件内容,允许在目录中新建、移动、...
  • readdir  语法: struct dirent* readdir(DIR* dir_handle);  返回值: dirent结构  函数种类: 文件存取  内容说明 本函数用来读取目录...inode(发音:eye-node)译成中文就是索引节点,它用来存放档案及目录的基
  • 查找目录下的所有文件中是否含有某个字符串  find .|xargs grep -ri "IBM"  查找目录下的所有文件中是否含有某个字符串,并且只打印出文件名  ...find .|xargs grep -ri "IBM" -l  ...等)
  • Linux中的用户、管理和权限管理、特殊权限管理,以及其常用命令。
  • Linux 文件或目录的属性主要包括:文件或目录的节点、种类、权限模式、链接数量、所归属的用户和用户、最近访问或修改的时间等内容; [root@localhost ~]# ls -lih总计 104K2408949 -rwxr-xr-x 1 root root 7 04-...
  • 下面的脚本可以用来查看linux中每个中的用户,它依次读取/etc/group每一行,对于其中每一行,都去遍历一遍/etc/passwd,如果group id匹配,打打印出名和用户名。 #!/bin/sh #! This script will print all ...
  • Linux常用命令锦集 —— 目录/文本文件篇 详解 Linux命令是对Linux系统进行管理的命令。对于Linux系统来讲,无论是CPU、内存、磁盘驱动器、键盘鼠标,还是用户等都是文件。Linux命令在系统中有两种类型:Linux命令...
  • 从《循序渐进Linux》第一版发布,到现在已经近6年了,6年的时间,技术发生了很大的变化,Linux系统的内核版本从2.6.9(RHEL4.x)已经更新到了现在的3.10(Centos7.x),第一版中的部分内容已经陈旧,Linux系统部分...
  • Linux命令全称及目录结果

    千次阅读 2016-04-07 17:49:12
    /:根目录,所有的目录、文件、设备都在/之下,/就是Linux文件系统的组织者,也是最上级的领导者。  /bin:bin就是二进制(binary)英文缩写。在一般的系统当中,都可以在这个目录下找到linux常用的命令。系统所...
  • Linux用户和用户管理

    千次阅读 2016-04-02 02:55:21
    linux操作系统中,每一个用户都有一个唯一的身份标识,称为用户ID(UID)。每一个用户至少属于一个用户。用户是由系统管理员创建,由多个用户组成的用户群体。每一个用户也有一个唯一的身份标
  • Linux下的proc目录详解

    千次阅读 2017-04-11 18:56:18
    文章结构: 1.什么是proc目录 2. 初识proc目录 ...proc是Linux系统下一个很重要的目录。 它跟/etc, /home等这些系统目录不同, 它不是一个真正的文件系统, 而是一个虚拟的文件系统。 它不存在

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 23,825
精华内容 9,530
关键字:

linux获取目录的属主属组

linux 订阅