samba原理-usernames
来源:互联网 发布:数控编程兼职 编辑:程序博客网 时间:2024/05/16 23:37
SAMBA是在Linux服务器上部署共享文件服务,然后在Windows上进行访问。对于访问时用户的验证Linux不同于Windows。
1. Linux用户模式
Linux一般分为以下几种用户模式:
- 0:关机
- 1:单用户模式
- 2:无网络支持的多用户模式
- 3:有网络支持的多用户模式
- 4:保留,未使用
- 5:有网络支持有X-Window支持的多用户模式
- 6:重新引导系统,即重启
Linux 系统处于正常状态时,服务器主机开机(或重新启动)后,能够由系统引导器程序自动引导 Linux 系统启动到多用户模式,并提供正常的网络服务。特注:进入单用户模式,没有开启网络服务,不支持远程连接
Linux 系统中不同的运行级别(Run Level)代表了系统的不同运行状态,例如 Linux 服务器正常运行时处于运行级别3,是能够提供网络服务的多用户模式;而运行级别 1 只允许管理员通过服务器主机的单一控制台进行操作,即“单用户模式”。
2. Linux文件权限
Linux文件的元数据中保存了该文件的权限mod,创建该文件的UID,GID。
[u1@localhost test]# stat file1 File: ‘file1’ Size: 2 Blocks: 8 IO Block: 4096 regular fileDevice: fd00h/64768d Inode: 134382061 Links: 1Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)Access: 2017-09-19 01:38:17.517410401 -0700Modify: 2017-09-19 01:38:14.854274421 -0700Change: 2017-09-19 01:38:14.854274421 -0700 Birth: -You have new mail in /var/spool/mail/root[u1@localhost test]#
如上面文件file1的用户具有读写权限,用户组和其他用户具有读权限。同时也应该注意到uid/gid保存在文件的元数据中。如果切换其他用户,并进行写该文件,将报错。
[root@localhost test]# su u1[u1@localhost test]$ lltotal 4-rw-r--r-- 1 root root 2 Sep 19 01:38 file1[u1@localhost test]$ echo "1" > file1bash: file1: Permission denied[u1@localhost test]$
上述用户u1就是Linux多用户模式中,一个用户。因此如果从网络(windows客户端)访问Linux,那么也需要提供用户名。
但是我们也应该注意到,在Linux本地访问时,已经登录到u1用户状态,u1发起的读写操作将把u1的UID/GID作为请求的一部分与元数据中的要访问文件的UID/GID做比较,做权限鉴定。那么网络来的请求该如何做用户的权限鉴定呢?
3.SAMBA用户鉴权
请求从windows客户端来,Linux服务器上的smbd进程接收请求。由于不同请求中可能包含了不同的用户名,权限,因此smbd需要提供一个转换功能。即将windows 访问请求中的用户转换为uid并保存下来。如windows用户admin1在smaba共享目录中创建了一个文件,那么该文件的元数据中应该保存admin1在smbd中转换出来的uid/gid。
不过进行用户转换功能的组件不是smbb,而是其他的组件,后续将进行逐步说明。
- samba原理-usernames
- 区别document.forms[0].usernames与document.getElementByName(usernames)
- SAMBA 的实现原理以及使用方法
- samba 服务安装及原理介绍
- SAMBA 的实现原理以及使用方法
- CareerCup Find the usernames existing in both documents
- Samba
- Samba
- Samba
- samba
- Samba
- SAMBA
- samba
- samba
- samba
- samba
- samba
- samba
- java 虚拟机内存配置
- 4. linux挂载windows的文件夹
- Android Studio com.android.dex.DexException: Multiple dex files define(重复引用包)
- cJson实战用途
- 深入理解Thread.sleep()的意义
- samba原理-usernames
- 为什么说String类型的值是不可变的?
- 练练
- ubuntu14.04给python安装pip
- 一步两步,学习大数据(一)——Centos7中jdk的安装与配置
- Java中对象存储位置
- 深入理解Java虚拟机(五)
- 千视通追影车踪大数据系统V4.0.3.1
- 常用密码正则表达式验证