• 文件权限与访问控制Linux文件系统权限Linux文件安全性: 使用命令行管理文件系统权限: 使用数字改变文件权限:     注意:当命令输入错误时,会有提示,下面这个命令的正确写法是:cat /...

    管理本地用户账户:

    设置用户密码:

    管理本地组账户:

    文件权限与访问控制:

    Linux文件系统权限:

    Linux文件安全性:

    使用命令行管理文件系统权限:

    使用数字改变文件权限:

     

     

    注意:当命令输入错误时,会有提示,下面这个命令的正确写法是:cat  /etc/passwd

    每一命令行代表一个步骤

     

    Ø  新建用户u1、u2,密码是redhat,属于同一个附属组grp1,用户u2不允许登陆到系统中,新建用户u3、u4,属于同一个附属组grp2。

     user  add  u1

     user  add  u2

     user  add  u3

     user  add  u4

     cat  /etc/passwd

     groupadd  grp1

     groupadd  grp2

     cat   /etc/group

     usermod  -aG  grp1  u1

     usermod  -aG  grp1  u2

     usermod  -aG  grp2  u3

     usermod  -aG  grp2  u4

     grep  grp1   /etc/group

     echo  redhat  |  passwd  --stdin  u1

     echo  redhat  |  passwd  --stdin  u2

     usermod  -s  /usr/sbin/nologin  u2

     grep  u2  /etc/passwd

    Ø 创建目录/web1,所有者是u1;创建目录/web2,所有者是u2,所属组是grp1。创建目录/web3,所属组是grp1;

     mkdir   /web1

     mkdir   /web2

     mkdir   /web3

     ls  -ld  /web1 ; chown  u1  /web1 ; ls  -ld  /web1 (查看两次ls命令输出的不同)

     ls  -ld  /web2 ; chown  u2:grp1  /web2 ; ls  -ld  /web2

     ls  -ld  /web3 ; chown  :grp1  /web ; ls  -ld  /web3

    Ø 更改/web1目录的权限,使其他用户对它没有任何权限;更改/web2目录的权限,使所属组对它拥有读写执行权限;更改/web3目录的权限,任何用户在/web3目录中创建的任何文件都属于grp1组

     ls   -ld   /web1 ;  chmod  o=-  /web1 ;  ls   -ld   /web1(查看两次ls命令输出的不同)

     ls   -ld   /web2 ;  chmod  g=rwx  /web2 ;  ls   -ld   /web1

     touch  /web3/test1.txt  ;  ls  -l  /web3/test1.txt

     ls  -ld  /web3 ; chmod  g+s  /web3  ;  ls   -ld   /web3

     touch  /web3/test2.txt  ;  ls  -l  /web3/test2.txt

    test1.txttest2.txt都是root用户创建的,但是两个文件的所属组是不同的,这就是“g+s功能

    Ø 创建目录/web4,所有者和所属组是root,u1用户可以读写执行/web4;创建目录/web5,所有者和所属组是root,grp1组成员可以读写执行/web5;grp2组成员对/web4没有任何权限

     mkdir   /web4

     mkdir   /web5

     chown  root:root  /web4

     chown  root:root  /web5

     setfacl  -m  u:u1:rwx   /web4

     setfacl  -m  g:grp1:rwx   /web5

     setfacl  -m  g:grp2:-  /web4

     getfacl  /web4  (查看特殊权限的设置结果)

     getfacl  /web5  (查看特殊权限的设置结果)

     

    展开全文
  • Linux 是一个多用户的操作系统,引入用户,可以更加方便管理 Linux 服务器,系统默认需要以一个用户的身份登入,而且在系统上启动进程也需要以一个用户身份去运行,用户可以限制某些进程对特定资源的权限控制。...

    Linux系统中用户权限管理

    Linux 是一个多用户的操作系统,引入用户,可以更加方便管理 Linux 服务器,系统默认需要以一个用户的身份登入,而且在系统上启动进程也需要以一个用户身份去运行,用户可以限制某些进程对特定资源的权限控制。

    1、Linux用户及组

    Linux 系统用户是根据用户 ID 来识别的,默认 ID 长度为 32 位,从默认 ID 编号从 0 开始,但是为了和老式系统兼容,用户 ID 限制在 60000 以下。
    Linux用户分为三种:root用户(UID 0);系统用户(UID 1-499);普通用户(UID 500 以上)

    1. root用户 :root用户UID为0,root用户的权限是最高的,所以也被称为超级用户。root用户的特权性还表现在root用户可以超越任何用户和组群对文件或目录进行读取、修改和删除;可以控制对可执行程序的执行和终止;可以对硬件设备进行添加、创建和移除等操作;也可以对文件和目录的属性和权限进行修改,以适合系统管理的需要。
    2. ** 系统用户**: 系统用户也被称为虚拟用户、伪用户或假用户,这类用户不具有登录Linux系统的能力,但却是系统运行不可缺少的用户,比如bin、daemon、adm、ftp、mail等,这类用户都是系统自身拥有的。系统用户的UID为1~499。
    3. 普通用户: 普通用户能登录系统,在Linux系统上进行普通操作,能操作自己目录的内容,其使用系统的权限受到限制,这类用户都是系统管理员创建的,其UID为500~60000之间。

    2、Linux 操作系统用户的特点

    Linux 系统中的每个文件或者文件夹,都有一个所属用户及所属组,使用 id 命令可以显
    示当前用户的信息,使用 passwd 命令可以修改当前用户密码。

    特点
    每个用户拥有一个 UserID,操作系统实际读取的是 UID,而非用户名;
    每个用户属于一个主组,属于一个或多个附属组,一个用户最多有 31 个附属组;
    每个组拥有一个 GroupID;
    每个进程以一个用户身份运行,该用户可对进程拥有资源控制权限;
    每个可登陆用户拥有一个指定的 Shell 环境。

    3、Linux 用户管理

    Linux 用户在操作系统可以进行日常管理和维护,涉及到的相关配置文件如下:
     /etc/passwd 保存用户信息
     /etc/shdaow 保存用户密码(以加密形式保存)
     /etc/group 保存组信息
     /etc/login.defs 用户属性限制,密码过期时间,密码最大长度等限制
     /etc/default/useradd 显示或更改默认的 useradd 配置文件
    如需创建新用户,可以使用命令 useradd,执行命令 useradd yzw 即可创建yzw 用户,同时会创建一个同名的组 yzw,默认该用户属于 yzw 主组。Useradd yzw 命令默认创建用户 yzw,会根据如下步骤进行操作:
     在/etc/passwd 文件中添加用户信息;
     如使用 passwd 命令创建密码,密码会被加密保存在/etc/shdaow 中;
     为 yzw创建家目录:/home/yzw;
     将/etc/skel 中的.bash 开头的文件复制至/home/yzw 家目录;
     创建与用户名相同的yzw 组,yzw 用户默认属于 yzw 同名组;
     yzw 组信息保存在/etc/group 配置文件中
    在使用 useradd 命令创建用户时,可以支持如下参数:
    用法:useradd [选项] 登录
    useradd -D
    useradd -D [选项]
    选项:
    -b, --base-dir BASE_DIR 指定新账户的家目录;
    -c, --comment COMMENT 新账户的 GECOS 字段;
    -d, --home-dir HOME_DIR 新账户的主目录;
    -D, --defaults 显示或更改默认的 useradd 配置;
    -e, --expiredate EXPIRE_DATE 新账户的过期日期;
    -f, --inactive INACTIVE 新账户的密码不活动期;
    -g, --gid GROUP 新账户主组的名称或 ID;
    -G, --groups GROUPS 新账户的附加组列表;
    -h, --help 显示此帮助信息并推出;
    -k, --skel SKEL_DIR 使用此目录作为骨架目录;
    -K, --key KEY=VALUE 不使用 /etc/login.defs 中的默认值;
    -l, --no-log-init 不要将此用户添加到最近登录和登录失败数据
    库;
    -m, --create-home 创建用户的主目录;
    -M, --no-create-home 不创建用户的主目录;
    -N, --no-user-group 不创建同名的组;
    -o, --non-unique 允许使用重复的 UID 创建用户;
    -p, --password PASSWORD 加密后的新账户密码;
    -r, --system 创建一个系统账户;
    -R, --root CHROOT_DIR chroot 到的目录;
    -s, --shell SHELL 新账户的登录 shell;
    -u, --uid UID 新账户的用户 ID;
    -U, --user-group 创建与用户同名的组;
    -Z, --selinux-user SEUSER 为 SELinux 用户映射使用指定 SEUSER

    展开全文
  • Linux操作系统是多任务(Multi-tasks)多用户(Multi-users)分时操作系统,linux操作系统的用户就是让我们登录到linux权限;每当我们使用用户名登录操作系统时,linux都会对该用户进行认证、授权审计等操作。操作...

    1、linux操作系统用户及用户组

    Linux操作系统是多任务(Multi-tasks)多用户(Multi-users)分时操作系统,linux操作系统的用户就是让我们登录到linux的权限;每当我们使用用户名登录操作系统时,linux都会对该用户进行认证、授权审计等操作。操作系统为了识别每个用户,会给每个用户定义一个ID,就是UID。用户组就相当于多个用户的容器;在linux系统中,用户组也有一个ID,GID。

    1.1 linux操作系统用户

    在linux中,用户分为两大类:管理员用户和普通用户,其中普通用户有分为系统用户和登录用户; 
    系统用户:为了能够让那些后台进程或服务类进程以非管理员的身份运行,通常需要为此创建多个普通用户,这类用户从来不用登陆系统。 
    登录用户:就是我们一般使用登录linux的用户。

    用户标识:user id,UID 
    通常使用16bits二进制数字表示(0-65535) 
    管理员的用户标识:0 
    普通用户:1-65535 
    系统用户:1-499(Centos6)、1-999(Centos7) 
    登录用户:500-60000(Centos6)、1000-60000(Centos7)

    ​linux通过名称解析库“/etc/passwd”文件解析用户名与用户ID之间的对应关系。

    /etc/passwd:用户信息库 
    name:password:UID:GID:GECOS:directory:shell

    1.2 linux操作系统用户组

    在Linux中,用户组分类方式有三种: 
    1、管理员组、普通用户组(系统用户组,登录用户组) 
    2、用户的基本组、用户附加组 
    3、私有组、公共组

    用户组标识:group id,GID 
    通常使用16bits二进制数字表示(0-65535) 
    管理员的用户组标识:0 
    普通用户组:1-65535 
    系统用户组:1-499(Centos6)、1-999(Centos7) 
    登录用户组:500-60000(Centos6)、1000-60000(Centos7)

    linux通过名称解析库“/etc/group”文件解析用户名与用户ID之间的对应关系。

    /etc/group:组的信息库 
    group_name:passwd:GID:user_list 
    user_list:该组用户的成员;以此组为附加组的用户的用户列表

    1.3 linux操作系统密码

    用户在登录linux系统时,会对比password与之前保存在“/etc/shadow”、“/etc/gshadow”文件中的密码是否一致。

    ​加密算法: 
    对称加密:加密和解密使用同一个密码 
    非对称加密:加密和解密使用的一对密钥 
    密钥对:公钥(public key)、私钥(private key) 
    单向加密:只能加密,不能解密;提取数据特征码; 
    定长输出: 
    雪崩效应:密码中某一个字符改变,那么整个加密后的密钥都会改变

    linux的密码加密方式使用单向加密算法,并且添加随机数(salt)计算得出的。

    系统识别算法ID 算法名称
    1 md5:message digest,128bits
    2 sha:secure hash algorithm,160bits
    3 sha224
    4 sha256
    5 sha384
    6 sha512

    /etc/shadow:用户密码

    用户名:加密的密码:最近一次修改密码的时间:最短使用期限:最长使用期限:警告期段:非活动期限:过期期限:保留字段 
    这里写图片描述

    [root@localhost ~]# head -1 /etc/shadow
    root:$6$mNeLUb3TE/L9utIA$nVgYyR6KkPDFRYrZC2Q9hPRNgz8z3mDKsQKraE1Fy8.LBMQoldhK4Ne1ZZlolZg2362JgdrwmTRmSbI5PTe.j0::0:99999:7:::

    加密密码:使用$分隔,第一个段表示使用的加密算法,第二个段表示添加的salt。第三段表示加密后的密码.

    2、权限管理

    linux的文件管理权限分为读、写和执行

    [root@localhost ~]# ls -l /bin/bash
    -rwxr-xr-x. 1 root root 960392 8月   3 2016 /bin/bash 
    • 1
    • 2

    文件权限: 
    -rwxr-xr-x. 
    共分为五个部分: 
    -:表示文件类型 
    rwx:用户属主的权限 
    r-x:用户属组的权限 
    r-x:其他用户的权限 
    .:是否启用facl

    权限: 
    r:readable,读 
    w:wirteable,写 
    x:excuteable,执行

    权限对文件的作用: 
    r:可获取文件的数据; 
    W:可修改文件的数据; 
    x:可将此文件运行为进程;

    权限对目录的作用: 
    r:可使用ls命令获取其下的所有文件列表; 
    w:可修改此目录下的文件列表;即创建或删除文件,包括子目录。 
    x:可cd至此目录中;且可使用ls -l来获取所有文件的详细属性信息;

    权限组合 二进制数 十进制数
    000 0
    –x 001 1
    -w- 010 2
    -wx 011 3
    r– 100 4
    r-x 101 5
    rw- 110 6
    rwx 111 7
    练习:
    rw-rw-r--   664
    rwxrwxr-x   775
    rwxr-x---   750
    rw-------   600 
    rwxr-xr-x   755

    3、相关命令

    3.1用户管理命令

    useradd命令:创建用户 
    useradd [选项] 登录名 
    -u,–uid UID:指定UID,默认是上一个用户的UID+1 
    -g,–gid GID:指定基本组ID,此组得事先存在; 
    -G,–groups GROUP1[,GROUP2,……[,GROUPSN]]:指明用户所属的附加组,多个组之间用逗号分隔。 
    -c,–comment COMMENT:指明注释信息 
    -d,–home HOME_DIR:以指定路径为用户的家目录;通过复制/etc/skel此目录并重命名实现;指定的家目录路径如果事先存在,则不会为用户复制环境配置文件。 
    -s,–shell SHELL:指定用户的默认shell,可用的所有shell列表存储在/etc/shells文件中; 
    -r,–system:创建系统用户 
    -M:不为用户创建主目录 
    -f,–incative INACTIVE:在密码过期后,账户被彻底禁用之前的天数,0表示立即禁用,-1表示禁用该功能。 
    注意:创建用户时的诸多默认设定配置文件为/etc/login.defs

    useradd -D:显示创建用户的默认选项配置; 
    useradd -D 选项:修改默认选项的值; 
    修改的结果保存于/etc/default/useradd文件中;可以直接修改此文件来实现。

    usermod命令:修改用户属性 
    usermod [选项] 登录名 
    -u,–uid UID:修改用户的ID为此处指定的新UID; 
    -g,–group GROUP:修改用户所属的基本组;此组得事先存在; 
    -G, –groupsGROUP1[,GROUP2,…[,GROUPN]]]:修改用户所属的附加组,原来的附加组会被覆盖; 
    -a, –append:与-G一同使用,用于用户追加新的附加组; 
    -c,–comment COMMENT:修改注释信息; 
    -d,–home HOME_DIR:修改用户的家目录;用户原有的文件不会被转移至新位置; 
    -m,–move-home:只能与-d选项一同使用,用于将原来的家目录移动为新的家目录; 
    -l,–login NEW_LOGING:修改用户名; 
    -s, –shell SHELL:修改用户的默认shell; 
    -L,–lock:锁定用户密码;即在用户原来的密码字符串之前添加一个”!”; 
    -U,–unlock:解锁用户密码,

    userdel命令:删除用户, 
    userdel [选项] 登录名 
    -r:删除用户时一并删除其家目录和用户邮箱;

    id命令:显示用户的真实和有效的UID和GID 
    id [OPTION]… [USERNAME] 
    -u:仅显示有效的UID; 
    -g:仅显示用户的基本组的ID; 
    -G:仅显示用户所属的所有组的ID; 
    -n:显示名字而非ID;一般与g一起使用:-ng

    **su命令:**switch user 
    登录式切换:会通过重新读取目标用户的配置文件来重新初始化 
    su - USERNAME 
    su -l USERNAME

    非登录式切换:不会读取目标用户的配置文件进行初始化 
    su USERNAME

    注意:管理员可无密码切换至其它任何用户;其它用户在切换用户时必须输入密码。

    -c “COMMAND”:仅以指定用户的身份运行此处指定的命令 
    例如:su - USERNAME -c “whoami”

    3.2 用户组管理命令

    groupadd命令:添加组 
    groupadd [选项] group_name 
    -g GID:指定GID,默认是上一个组的GID+1 
    -r:创建系统组;

    groupmod命令:修改组属性 
    groupmod [选项] GROUP 
    -g GID:修改GID 
    -n new_name:修改组名

    groupadd命令:删除组 
    groupdel [选项] GROUP

    3.3 用户及用户组练习

    练习1:创建用户gentoo,UID为4001,基本组为gentoo,附加组为distro(GID为5000)和penguin(GID为5001);
    
    groupadd -g 5000 distro
    groupadd -g 5001 penguin
    useradd -u 4001 -G distro,penguin
    
    练习2:创建用户fedora,其注释信息为"Fedora Core",默认shell为/bin/tsch;
    
    useradd -c "Fedora Core" -s /bin/tsch fedora
    
    练习3:修改gentoo用户的家目录为/var/tmp/gentoo;要求其原有文件人仍能被用户访问;
    
    usermod -d /var/tmp/gentoo -m gentoo
    
    练习4:为gentoo新增附加组netadmin
    
    group netadmin
    usermod -a -G netadmin
    

    3.4 密码管理命令

    passwd命令: 
    passwd [-k] [-l] [-u [-f]] [-d] [-e] [-n mindays] [-x maxdays] [-w warndays] [-i inactivedays] 
    [-S] [–stdin] [username] 
    (1)passwd:修改用户自己的密码; 
    (2)passwd USERNAME:修改指定用户的密码,但仅root有此权限; 
    -l,-u:锁定和解锁用户; 
    -d:清除用户密码; 
    -e DATE:过期期限,日期; 
    -i DAYS:非活动期限,时间范围; 
    -n DAYS:密码的最短使用期限; 
    -x DAYS:密码的最长使用期限; 
    -w DAYS:警告期限; 
    –stdin:

    echo “PASSWORD” | passed –stdin USERNAME

    [root@localhost ~]# echo "hadoop" | passwd --stdin hadoop
    更改用户 hadoop 的密码 。
    passwd:所有的身份验证令牌已经成功更新。                

    gpasswd命令: 
    用户组密码文件:/etc/gshadow

    gpasswd [选项] group 
    -a USERNAME:向组中添加用户,作为附加组 
    -d USERNAME:从组中删除用户

    newgrp命令:临时切换指定的组为基本组; 
    newgrp [-] [group] 
    -:会模拟用户重新登录以实现重新初始化其工作环境 
    注意: 
    若指定组设定了密码: 
    (1)如果用户的附加组是要切换到的组名,那么不需要密码可以直接切换到指定组。 
    (2)如果用户的附加组不包含要切换的组名,那么需要输入密码才能切换到指定组。 
    若指定组没有设定密码:所有用户都不可以直接切换到指定组;root用户除外。

    chage命令:更改用户密码过期信息 
    [root@localhost ~]# chage list root 
    用法:chage [选项] 登录 
    选项: 
    -d, –lastday 最近日期 将最近一次密码设置时间设为“最近日期” 
    -E, –expiredate 过期日期 将帐户过期时间设为“过期日期” 
    -h, –help 显示此帮助信息并推出 
    -I, –inactive INACITVE 过期 INACTIVE 天数后,设定密码为失效状态 
    -l, –list 显示帐户年龄信息 
    -m, –mindays 最小天数 将两次改变密码之间相距的最小天数设为“最小天数” 
    -M, –maxdays 最大天数 将两次改变密码之间相距的最大天数设为“最大天数” 
    -R, –root CHROOT_DIR chroot 到的目录 
    -W, –warndays 警告天数 将过期警告天数设为“警告天数”

    其他几个命令用户管理命令: 
    chsh:修改shell 
    chfn:修改用户基本信息 
    finger:显示用户基本信息

    [root@localhost ~]# finger
    Login     Name       Tty      Idle  Login Time   Office     Office Phone   Host
    root      root       pts/0   20:33  May 17 14:47                           (192.168.126.1)
    root      root       pts/1          May 18 12:56                           (192.168.126.1)

    pwck:检查用户的密码是否有问题

    [root@localhost ~]# pwck
    用户“ftp”:目录 /var/ftp 不存在
    用户“pulse”:目录 /var/run/pulse 不存在
    pwck:无改变   

    grpck:检查组文件的完整性

    3.5 权限管理命令

    chmod命令: 
    chmod [OPTIONS]… MODE[,MODE]… FILE… 
    chmod [OPTIONS]… OCTAL-MODE FILE… 
    chmod [OPTIONS]… –reference=RFILE FILE…

    三类用户:
    u:属主
    g:属组
    o:其它
    a:所有
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    (1)chmod [OPTIONS]… MODE[,MODE]… FILE… 
    MODE表示法: 
    赋权表示法:直接操作一类用户的所有权限位; 
    在赋予三类用户的权限不同时,则用逗号隔开;如果相同,可以合并授权。 
    u= 
    g= 
    o= 
    a= 
    授权表示法:直接操作一类用户的所有权限位r,w,x: 
    在赋予三类用户的权限不同时,则用逗号隔开;如果相同,可以合并授权。 
    u+,u- 
    g+,g- 
    o+,o- 
    a+,a- 
    (2)chmod [OPTIONS]… OCTAL-MODE FILE… 
    使用十进制的数字进行授权

    (3)chmod [OPTIONS]… –reference=RFILE FILE… 
    参考文件权限授权;

    选项: 
    -R,–recursive:递归修改,对目录下的所有文件(包括子目录)都有效。 
    注意:用户仅能修改属主为自己的那些文件的权限;

    从属管理管理命令:chown,chgrp 
    chown命令: 
    chown [选项]… [OWNER][:[GROUP]] FILE… 
    chown [选项]… [OWNER][.[GROUP]] FILE… 
    chown [选项]… –reference=RFILE FILE… 
    选项: 
    -R:递归修改,对目录下的所有文件(包括子目录)都有效。

    chgrp命令: 
    chmod [选项]… GREOUP FILE… 
    chmod [选项]… –reference=RFILE FILE…

    注意:仅管理员可修改文件的属主和属组;

    思考1:用户对目录有写权限,但对目录下的文件没有写权限时,能否修改此文件内容?能否删除此文件?
    不能修改文件的内容,但是能够删除此文件
    思考2:用户对目录有什么权限时,可以使用mv命令。
    执行权限

    umask:文件的权限反向掩码,遮罩码; 
    文件: 
    666-umask 
    目录: 
    777-umask 
    注意:之所以文件用666去减,表示文件默认不能拥有执行权限;如果减得的结果中有执行权限,则需要将其加1;

    umask命令: 
    umask:查看当前umask 
    umask MASK:设置umask;

    注意:此类设定仅对当前shell进程有效。

    展开全文
  • linux用户权限管理

    2016-03-15 23:01:35
    linux用户权限管理 (一):文件及目录权限管理 在linux系统中,主要分为三类用户:文件的所有者、组用户、其他用户。而linux系统的文件及目录的权限就是针对这三类不同的用户的(管理员拥有最高权限,在此不考虑...

    linux用户与权限管理

    (一):文件及目录权限管理

    在linux系统中,针对文件而言主要分为三类用户:文件的所有者、组用户、其他用户。而linux系统的文件及目录的权限就是针对这三类不同的用户的(管理员拥有最高权限,在此不考虑系统管理员)。

    首先,我们可以通过 ls -l 命令查看文件及目录权限

    <pre name="code" class="html">wuhui@ABC:~$ ls -l
    total 36
    drwxrwxr-x 5 wuhui wuhui 4096 Mar  3 16:41 Demo
    drwxr-xr-x 2 wuhui wuhui 4096 Feb 24 18:09 Desktop
    drwxr-xr-x 2 wuhui wuhui 4096 Feb 24 18:09 Documents
    drwxr-xr-x 2 wuhui wuhui 4096 Feb 24 18:09 Downloads
    drwxr-xr-x 2 wuhui wuhui 4096 Feb 24 18:09 Music
    drwxr-xr-x 2 wuhui wuhui 4096 Feb 24 18:09 Pictures
    drwxr-xr-x 2 wuhui wuhui 4096 Feb 24 18:09 Public
    drwxr-xr-x 2 wuhui wuhui 4096 Feb 24 18:09 Templates
    drwxr-xr-x 2 wuhui wuhui 4096 Feb 24 18:09 Videos
    
    
    由此我们可以看到文件及目录的常见权限为r(读)、w(写)、x(执行)除此之外,部分文件还拥有特殊权限。如

    wuhui@ABC:~$ ls -l /bin/ping
    -rwsr-xr-x 1 root root 44168 May  8  2014 /bin/ping
    
    
    在此,我们只讨论rwx权限。在ls -l 命令的执行结果中,第二位到第十位表示文件的权限,其中每三位代表一个用户,依次为文件所有者、文件属组用户、其他用户。我们先看看不同的文件权限的作用。

    针对目录文件:

    r:可以对此目录执行ls以列出该目录下的所有文件

    w:可以在该目录下创建文件

    x:可以使用cd切换此目录,也可以使用ls -l该内部文件的详细信息

    针对文本文件:

    r:可读,可以使用cat等命令查看

    w:可写,可以编辑或删除此文件

    x:可执行,可以在命令提示符下当做命令提交给内核运行

    通过ls -l命令我们可以看到,三个权限的占位是固定的,我们可以尝试用二进制来表示文件的权限,如果文件的所有者拥有读权限,我们就将第二位置为1,反之则为0,按照每三位一组,我们不难看出可以直接用8进制数来表示一类用户的访问权限。例如:rwx:8    r-x:5   rwxrwxrwx:777

    当我们创建文件或者目录时,我们可以看到文件的权限都是固定的

    <pre name="code" class="html">wuhui@ABC:/tmp$ mkdir dir
    drwxrwxr-x 2 wuhui wuhui 4096 Mar 15 21:53 dir
    total 4
    wuhui@ABC:/tmp$ ls -l
    wuhui@ABC:/tmp$ 
    wuhui@ABC:/tmp$ touch file
    wuhui@ABC:/tmp$ ls -l
    total 4
    drwxrwxr-x 2 wuhui wuhui 4096 Mar 15 21:53 dir
    -rw-rw-r-- 1 wuhui wuhui    0 Mar 15 21:54 file

    
    

    我们可以看到文件的默认权限是rw-rw-r--:664   而目录的默认权限是:rwxrwxr-x:775 这是由于掩码造成的,我们可以通过umask 命令查看和修改当前环境中的umask

    wuhui@ABC:/tmp$ umask
    0002
    
    
    
    

    对于文件而言:文件权限 + umask = 666; 对于目录而言:目录权限 + umask = 777;默认情况下创建的文本文件不具有执行权限,如果当我们修改了umask后创的文本文件拥有了执行权限,系统在创建文件时自动在文件权限上加一。

    下面说说如何修改文件权限:

    chmod: 修改文件权限

    -R, --recursive:递归修改目录及其目录内包含的所有文件的权限(change files and directories recursively)

    --reference=RFILE:指定参照文件,将文件的权限修改为和所参照的文件的权限一样(use RFILE's mode instead of MODE values)

    还可以直接通过三位8进制数来修改文件的权限,如:chmod 777 file    chmod 755 file

    chmod命令也可以修改某些用户的某些权限;u代表文件的所有者、g代表同组用户、o代表其他用户,

    如:chmod u+x file:给文件所有者添加执行权限   

    chmod uo+wr:给文件的所有者和其他用户添加读写权限

    chmod u-w,g+w,o= file: 给删除文件所有者的w权限,同组用户添加w权限,删除其他用户的wrx权限


    (二):用户管理

    linux系统的用户主要分为两种:系统管理员和普通用户,而普通用户又分为系统用户和一般用户,当然系统管理员拥有系统的最高权限。其中每个用户都有一个唯一的UID,管理员的UID为0,除此之外系统用户的UID是从1到499,一般用户的UID是从500到65535。除了用户之外还有一个用户组的概念,而用户组又分为:基本组(默认组、私有组)和附加组(额外组两种),每个组也有一个唯一的GID。

        linux系统是根据/etc/passwd文件来保存当前系统中的用户与其对应的组的。我们先看看该文件的格式(ps:可以通过  man 5 passwd 命令来查看该文件的格式)

    该文件的每一行通过:分为七个字段,依次为:

    用户的登录名(login name)

    可选加密密码(optional encrypted password),由于安全性考虑,用户的密码另外保存在/etc/shadow文件之中

    用户ID(numerical user ID)

    组ID(numerical group ID)

    注释信息(user name or comment field)

    用户家目录(user home directory)

    默认shell(optional user command interpreter)

    关于用户组的信息也可通过查看/etc/group文件获取,其格式类似于passwd文件。

    下面讲讲如何管理用户及用户组:

    useradd:创建一个新用户(create a new user or update default new user information)

    该命令的默认配置文件保存在/etc/login.defs文件

    -u, --uid UID:指定UID

    -g, --gid GROUP:指定基本组,如果不指定基本组,则默认创建一个与用户名同名的组

    -G, --groups:指定附加组,可以指定多个,用逗号隔开

    -c, --comment COMMENT:添加注释信息(Any text string. It is generally a short description of the login, and is currently used as the field for the user's full name.)

    -d, --home HOME_DIR:指定家目录

    -s, --shell SHELL:指定默认shell

    -m, --create-home:强制创建家目录

    -M:不创建用户家目录

    -r:添加一个系统用户

    userdel: 删除一个用户(delete a user account and related files)

    默认情况不删除用户的家目录

    -r:删除用户的同时也删除家目录

    id:查看用户的信息(print real and effective user and group IDs)

    finger: 查看用户账号信息(user information lookup program)

    usermod:修改用户账号信息(modify a user account)

    -u, --uid UID:修改UID

    -g, --gid GROUP:修改基本组

    -G, --groups GROUP1[,GROUP2,...[,GROUPN]]]:修改附加组,如果该用户已有附加组,则会覆盖原有的附加组

    -Ga:在原有的附加组上添加新的附加组

    -c, --comment COMMENT:修改注释信息(The new value of the user's password file comment field. It is normally modified using the chfn(1) utility.)

    -d, --home HOME_DIR: 修改家目录,修改后该用户不能访问原有的家目录

    -dm:修改家目录后将此前家目录的文件移动到新的家目录中

    -s, --shell SHELL:修改shell (The name of the user's new login shell. Setting this field to blank causes the system to select the default login shell.)

    -L, --lock: 锁定账号

     -U, --unlock:解锁账号

    chsh:修改用户默认shell

    chfn:修改用户的注释信息,finger查看的信息

    passwd:修改密码,普通用户修改自己的密码,管理员可以修改其他用户的密码(change user password)

    -l, --lock:锁定账号

    -u, --unlock:解锁账号

    -d, --delete:删除用户密码(Delete a user's password (make it empty). This is a quick way to disable a password for an account. It will set the named account passwordless.)

    groupadd:创建一个用户组,使用方法类似于useradd(create a new group)

    groupmod:修改组信息,用法类似于usermod (modify a group definition on the system)

    groupdel:删除组,使用方法类似于userdel (delete a user account and related files)

    gpasswd:给组加密码 (administer /etc/group and /etc/gshadow)

    newgrp:临时切换用户的基本组,此时会需要组密码(附加组中没有要切换到的组)否则也不需要密码

    exit:退出临时登录到的组




    展开全文
  • linux SFTP用户权限控制

    2018-07-19 10:31:17
    xftp等)直接上传的,这些用户可以进入服务器的大部分目录,下载拥有可读权限的文件,直接拿用户做sftp还是存在风险的,尤其是向第3方人员或服务提供sftp服时,所以在提供专用的sftp用户有必要做好权限控制 ...

    在向服务器上传文件时,现在我们很多都是拿服务器的登录用户,通过第3方工具(wincp,xftp等)直接上传的,这些用户可以进入服务器的大部分目录,下载拥有可读权限的文件,直接拿用户做sftp还是存在风险的,尤其是向第3方人员或服务提供sftp服时,所以在提供专用的sftp用户有必要做好权限的控制

     

    现在对sftp用户的控制方法,一般就是把访问目录限定在用户加目录下,翻看了一些网上资料和自身实践后,具体方法如下(需root执行):

    1、建立sftp用户和相关用户组,以psftp用户为例

    groupadd p2psftp

    mkdir /hsdata/

    useradd -d /hsdata/psftp -g p2psftp -s /bin/false psftp

    passwd psftp

    chown root /hsdata/psftp

    chmod 750 /hsdata/psftp

    说明:psftp家目录的属主必须是root,属组必须是p2psftp(在后面的ssh中使用是的p2psftp),该家目录的最高可设置权限为755,如果高于该权限,会导致sftp连接不上

    2、建立sftp目录

    cd /hsdata/psftp

    mkdir upload

    chmod a+w upload -R upload

    upload目录可以用于上传和下载文件

    说明:必须在psftp目录的下级目录中才可以上传下载,在同级目录中不行

    3、修改ssh配置(ssh版本必须在4.8以上)

    cd /etc/ssh/

    cp sshd_config sshd_config.bak

    vim sshd_config,修改内容如下:

    #Subsystem      sftp    /usr/libexec/openssh/sftp-server(这行需注释)

    新增如下内容(最好在配置文件的结尾添加)

    Subsystem sftp internal-sftp

            Match Group p2psftp

            ChrootDirectory /hsdata/psftp

            ForceCommand internal-sftp

     

    修改保存后重启服务

    service sshd restart

     

    centos7.X版本重启则执行

    /bin/systemctl restart sshd.service

     

    如果出现如下报错

     

    把Subsystemz这块的配置放到配置文件的最后。在重启

     

    展开全文
  • Linux操作系统中,root的权限是最高的,也被称为超级权限的拥有者。普通用户无法执行的操作,root用户都能完成,所以也被称之为超级管理用户。 在系统中,每个文件、目录和进程,都归属于某一个用户,没有用户...
  • 我们访问文件需要先取得相应的访问权限,而访问权限是通过LinuxLinux系统中的安全模型,我们需要知道下面两点 Linux系统上最初的安全模型叫DAC,全称是Discretionary Access Control,翻译为自主访问控制。后来又...
  • Linux 系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,...
  • linux用户权限管理

    2015-06-02 16:00:13
    首先,下图给出的是linux系统下文件权限权限属性列表为10个字符: 第一个字符表示文件类型,d为目录 -为普通文件 l为连接 b为可存储的接口设备 c为键盘鼠标等输入设备 2、3、4个字符表示所有者权限,5、6、7个...
  • 本篇文章主要介绍linux下svn服务器的用户权限分配详细说明。   svn的权限控制主要分配在版本库的Conf文件夹下的三个文件中 1、svnserve.conf anon-access = none #不允许匿名用户访问 auth-access = ...
  • Ubuntu/Linux用户管理权限管理用户与用户组根用户——root用户用户组创建与删除创建新用户修改用户与用户账号有关的系统文件(查看用户/用户组)文件/目录权限管理 用户与用户组 根用户——...
  • 用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并使用 权限 控制他们对系统资源的访问;另一方面也可以帮助用户组织文件,并为用户提供安全性保护。 权限 :1. r:读。2. w:写。3. x:执行 访问者 ...
  • SVN—人员使用目录权限精准控制Linux下配置-需求描述-文件配置配置 svnserve.conf配置 passwd配置 authz配置完成-总结 -需求描述 在项目开发工程中,需要使用svn来远程管理项目版本和文件。但是每个开发人员职能的...
  • Linux文件权限详解

    2018-12-30 19:57:00
    文章目录Linux文件权限详解一、文件权限二、修改文件访问权限的方法三、UMASK值四、三种特殊权限suid、sgid、sticky(sticky权限工作环境中相对常用)五、ACL访问控制列表六、文件权限操作的常用命令 Linux文件权限...
  • Linux中创建了jenkins这个用户,已经设置成了root权限; Win7 作为master部署了Jenkins服务,把Linux作为slave机,shell脚本中执行cp命令时,会报错,提示没有权限,任务阻塞。。。 问题原因: 查来查去是Linux的...
  • Linux SSH登录权限控制

    2018-03-02 20:48:37
    近日在云端开发过程中,莫名其妙的程序被重启了,现象...遂想到通过SSH配置文件控制,方法非常简单,只需在/etc/ssh/sshd_config文件添加即可。如下: 1.禁止root用户登录 ​ DenyUsers root 在此情况下,root...
  • Linux系统上对文件的权限有着严格的控制,用于如果相对某个文件执行某种操作,必须具有对应的权限方可执行成功。 Linux下文件的权限类型一般包括读,写,执行。对应字母为 r、w、x。 Linux权限的粒度有 拥有者 ...
  • linux权限符号解读

    2018-05-23 16:19:42
    第5-7位表示和这个文件属主所在同一个组的用户所具有的权限。第8-10位表示其他用户所具有的权限。如:drwxr-xr-x tomcat nginx springboot表示springboot是个目录,tomcat拥有读写执行的权限,和tomcat所在...
  • Linux ACL访问控制权限

    2017-08-04 09:56:48
    Linux ACL访问控制权限由于Linux系统的基本权限控制是针对文档所有者或所属组或其他账户来进行控制的,无法对某个单独的账户进行控制,所以就有了ACL(Account Control List)访问控制列表的概念,使用ACL,我们可以...
  • 目录 一:用户和组信息的查看 查看用户信息 ... 查看组信息 特殊组wheel ...用户管理 ...三:文件权限 ...文件权限的查看 ...文件权限的修改 ...ACL控制权限setfacl 、getfacl ...相关文章:Linux用户方面的加固...
1 2 3 4 5 ... 20
收藏数 195,059
精华内容 78,023