Linix-Samba VS. Windows-共享&NTFS权限

本文通过实验对比了在Linix-Samba与Windows环境下搭建文件服务器的过程及权限设置,详细介绍了两种环境下如何实现部门间文件共享及权限管理。
 Linix-Samba VS. Windows-共享&NTFS权限
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。 http://dreamfire.blog.51cto.com/418026/169679
Linix-Samba VS Windows-共享&NTFS权限
 
实验背景
       小诺公司由于部门业务的需求,需要使用windows和linux分别搭建文件服务器提供给员工共享资料。具体要求如下:
1、 公司目前有两个部门:财务部和工程部,要求建立财务部和工程部的共享文件夹,并且要求财务部共享文件夹只允许财务部里的员工访问,且只能下载,不允许上传和修改;工程部共享文件夹只允许工程部里的员工访问,且只能下载,不允许上传和修改。
2、 为了方便管理,需要给每个部门建立一个管理员,要求各个管理员对自己的部门文件夹具有所有的权限。
3、 由于公司里的一些规章制度以及一些时事新闻需要给所有员工共享,需要建立一个共享文件夹,并且只允许所有员工查看共享文件夹里的内容,不允许修改和删除等操作。为了管理方便,允许所有部门管理员对共享文件夹具有所有的管理权限。
 
实验网络拓扑图
组织结构图
 
实验步骤:
 
一、 Windows下文件服务器的实现过程
1、 在文件服务器上创建财务部管理员、财务部用户、工程部管理员、工程部用户。
打开“计算机管理”(可以在“运行”里输入“compmgmt.msc”命令打开),然后在“本地用户和组”里的“用户”里添加组织结构图里对应的用户(admin_caiwu、user_admin、admin_gongcheng、user_gongcheng)。
 
打开“计算机管理”(可以在“运行”里输入“compmgmt.msc”命令打开),然后在“本地用户和组”里的“组”里添加组织结构图里对应的组(caiwubu、gongchengbu、admins)。
 
添加各个部门管理员到组admins中。
 
添加财务部所有员工以及管理员到组caiwubu中。
 
添加工程部所有员工以及工程部管理员到组gongchenbu中。
 
2、 建立各个部门共享文件夹,并赋予相应的权限
分别创建三个共享文件夹(财务部资料、工程部资料、共享资料)然后打开“财务部资料”的“属性”并选择“共享 ”,删除默认的权限,然后添加财务部组以及财务部管理员,并赋予相应的权限。
 
打开财务部资料“属性”,并选择“安全”,然后添加财务部管理员以及财务部门组,并赋予相应的权限。
:工程部的设置方法与财务部的相同。
 
打开“共享资料”的“属性”,选择“共享”,然后添加各个部门的管理员组以及everyone组,并赋予相应的权限。
 
打开“共享资料”的“属性”,并添加各个部门的管理员组,保留users组,然后赋予相应的权限。
 
3、 在测试客户机上使用UNC路径访问的方式分别使用各个用户进行权限的测试。
打开“运行”窗口,输入“\\文件服务器的IP地址或者主机名”
 
输入财务部的管理员用户以及对应的密码。
 
财务部管理员可以访问财务部的资料,并且可以下载和创建文件、文件夹。
 
财务部管理员不可以访问工程部资料。
 
财务部管理员可以访问共享资料,并且可以删除、创建文件和文件夹。
 
测试完成之后,需要使用“net use * /d”命令删除已有的远程连接,这样可以保证用户资料的安全性。否则,下一次访问,是不需要输入用户名和密码就可以访问上一次访问过的内容。
 
换一个工程部员工的用户访问共享文件夹。
 
工程部的员工可以访问工程部的资料,并且可以下载,但是不能够修改和创建文件、文件夹。
 
工程部的员工不能够访问财务部的资料。
 
工程部的员工能够访问共享文件夹的资料,但是不能够删除、修改、添加文件和文件夹。
 
二、 Linux下Samba服务器的实现过程
1、 编辑samba的主配置文件
默认samba服务已安装,直接配置就可以了。
 
在配置文件全局目录[global]中添加“dos charset = gb2312 , unix charset = gb2312”这个是为了保持windows和samba语言编码的通用性。否则,windows上传上来的文件夹如果是中文,则会显示为乱码。
 
默认的“security = user”不需要修改,要求用户访问samba服务器时需要输入用户名和密码。
 
默认的[homes]配置文件不需要修改,每个用户都由一个属于自己的共享目录,而且具有完全控制的权限。
 
添加三个配置文件[caiwubu]、[gongchengbu]、[share],并设置相应的路径path,public设置为no,这一项可以不设置,对[homes]有作用,并且设置writable为yes,保证所有用户对该目录具有写入的权限,不过用户最终访问共享文件夹的权限是配置文件中的权限和用户对文件夹访问权限的最严格权限的叠加。
 
设置完smb.conf文件之后,需要重新启动smb服务才能够生效。注意:smb服务是smbd和nmbd两个服务的叠加。启动smb服务就相当于启动smbd和nmbd服务。
clip_image064650) this.width=650;" border=0 ?557?>
 
2、 创建用户和组,并将用户添加到对应的组中。
分别创建三个组caiwubu、gongchengbu和admins。
 
创建组中对应的用户,并添加到对应的组中(命令:useradd –g 组名 用户名)。然后使用“smbpasswd –a 用户”创建samba服务器对应的用户以及密码。(注意:samba服务器使用的是另一套用户名和密码,组使用的还是系统中的组,并且用户名必须在系统中存在。)
 
3、 创建共享文件夹,并设置共享文件夹的访问权限以及属主、属组。
在home目录下创建public共享主文件夹,并设置其属主为root用户,属组为组admins,权限为755,root用户对public具有完全控制的权限,admins组中的用户以及其它用户具有读取的权限。
 
在主共享文件夹中创建各个共享子文件夹,并设置子文件夹的属主以及属组,要求共享文件夹share的属主为root,属组为admins。
 
设置共享文件夹caiwu以及gongcheng的权限为750(部门管理员具有完全控制的权限,组里的用户具有读取的权限,其它用户没有权限),share的权限为775(root和属组里的用户具有完全控制的权限,其它用户具有读取的权限)。
 
4、 在windows下修改smb.conf配置文件里的共享目录为中文字幕。
复制smb.conf到admin_caiwu的宿主目录中,然后通过admin_caiwu用户访问。
 
复制smb.conf到windows系统中,并编辑smb.conf中的共享目录为“中文字幕”。
注意:宿主目录中默认有隐藏的用户配置文件,如果服务器作samba服务器,这些配置文件是不需要的,因为不需要使用系统用户登录samba服务器。而这些配置文件是从/etc/skel/目录中复制过来的。可以将/etc/skel/中的隐藏文件删除掉,也可以删除掉,然后创建一个具有相同权限的同名文件夹。不做这一步也可以,只需要登录的用户自己删除就可以了。
 
编辑“主目录”为中文字幕,设置完成之后,再复制到caiwu_admin目录中,并且覆盖到/etc/samba/中。
 
覆盖完成之后,需要重新启动smb服务程序。使配置生效。
 
5、 在测试主机上使用各个用户进行测试。
删除已有的访问连接
 
继续输入财务部管理员的用户以及密码。
 
可以看到主目录以及变成中文字幕了。
 
财务部管理员可以访问财务部里的资料,同时也可以创建、删除以及修改财务部文件夹中的内容。
 
财务部管理员不允许访问工程部里的资料。
 
财务部管理员可以访问共享资料,并且可以修改、删除、添加文件或文件夹。
 
删除已有连接,并使用工程部普通用户user_gongcheng访问samba服务器。
 
工程部员工可以访问工程部资料,但是不能够创建、删除文件。
 
工程部员工不能够访问财务部里的资料。
 
财务部员工可以访问共享资料,但是不能够创建、删除、修改文件。
 
总结:
在现实网络中,windows和linux都可以搭建文件服务器,他们有什么不同之处吗?
Windows创建共享文件夹比较方便,容易理解,也容易控制,但是易感染病毒,不便于维护,要求安全性较高。Linux下的samba服务器权限设置比较困难,不便于理解,但是安全性较高,而且不易感染病毒,至少windows下的那一套病毒在linux下就等于普通文件。因为linux下就没有扩展名这一说,且病毒程序根本就没办法运行,即使用户上传上去病毒程序也很难在linux下发作。如果在Linux下搭建samba服务器,建议添加一块硬盘,然后挂载到共享目录public中,并且设置磁盘配额。Windows下如果共享文件夹过多,可以使用DFS将所有共享文件夹实现单点访问,也可以利用其DFS复制功能实现冗余备份,这个是windows下的一大优势。
附录:
关于samba更多知识请访问:

本文出自 “Follow my heart!” 博客,请务必保留此出处http://dreamfire.blog.51cto.com/418026/169679

<think>我们正在解决Linux环境下安装了PyInstaller但提示“未找到命令”的问题。根据之前提供的解决方案,我们重点检查PATH环境变量安装方式。可能原因及解决方案:1.用户级安装导致PyInstaller可执行文件不在系统PATH中(通常位于~/.local/bin)2.安装后未刷新终端环境(需要重新登录或source配置文件)3.多个Python版本冲突步骤:1.确认PyInstaller安装位置2.将安装路径添加到PATH环境变量3.刷新当前终端或重启终端具体操作:首先,使用pipshow查找PyInstaller安装路径(用户级安装默认在~/.local/bin)然后,检查该路径是否在PATH中,若不在则添加最后,通过source命令使修改生效另外,我们可以使用python-mPyInstaller这种方式直接调用,避免路径问题。根据引用[1][2]中的安装方式,用户可能已经通过pip安装,但安装位置未加入PATH。操作示例:1.查找PyInstaller安装位置:`pipshowpyinstaller|grepLocation`或`pipshow-fpyinstaller`-在显示的文件列表中,可执行文件通常在bin目录下,例如:/home/username/.local/bin2.将路径加入PATH并刷新:-对于bash用户:将`exportPATH="$HOME/.local/bin:$PATH"`添加到`~/.bashrc`,然后执行`source~/.bashrc`-对于zsh用户:添加到`~/.zshrc`,然后执行`source~/.zshrc`3.验证:`whichpyinstaller`或`pyinstaller--version`如果还是不行,可以尝试重新安装(使用用户级安装避免权限问题):pipinstall--userpyinstaller如果存在多个Python版本,可能需要指定pip版本,例如:pip3install--userpyinstaller此外,引用[4]中提到命令可能会很长,建议写成脚本。但这里我们主要解决命令找不到的问题。生成相关问题:1.如何检查Linux系统中的PATH环境变量?2.如何将目录永久添加到PATH?3.如何解决多个Python版本导致的命令冲突?</think> 根据您的需求,我将详细解决 Linux 环境下"pyinstaller: 未找到命令"的问题,并提供完整解决方案: ### 🔧 解决方案:解决 Linux 中的 PyInstaller 命令未找到问题 #### 步骤 1:确认安装状态 ```bash # 检查 PyInstaller 是否已安装 pip show pyinstaller | grep -E "Version|Location" ``` 如果未安装,请使用清华镜像源快速安装: ```bash pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyinstaller ``` #### 步骤 2:检查用户级安装位置 Linux 下用户级安装的 PyInstaller 通常位于 `~/.local/bin` 目录: ```bash ls -l ~/.local/bin/pyinstaller ``` #### 步骤 3:将用户级 bin 目录加入 PATH 永久添加路径到 `.bashrc` 或 `.zshrc`: ```bash echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc source ~/.bashrc # 立即生效 ``` 验证路径: ```bash echo $PATH | tr ':' '\n' | grep "\.local/bin" ``` #### 步骤 4:使用模块调用方式(100% 有效) ```bash # 直接调用模块无需配置 PATH python -m PyInstaller --onefile Main_H41.py ``` #### 步骤 5:创建别名(可选) 在 `~/.bashrc` 中添加: ```bash alias pyinstaller='python -m PyInstaller' ``` 然后运行: ```bash source ~/.bashrc pyinstaller Main_H41.py # 使用别名 ``` #### 步骤 6:检查 Python 版本冲突 ```bash # 确认使用的 pip Python 版本一致 which pip # 显示 pip 路径 which python # 显示 Python 路径 ``` ### 📌 验证解决方案 ```bash # 验证命令是否可用 python -m PyInstaller --version # 测试打包命令 python -m PyInstaller --onefile --noconsole Main_H41.py ``` ### 🔍 故障排除提示 1. **虚拟环境问题**: ```bash # 确保虚拟环境激活且 PyInstaller 安装在当前环境 source venv/bin/activate pip install pyinstaller ``` 2. **权限问题**: ```bash # 避免使用 sudo pip,改用 --user 安装 pip install --user pyinstaller ``` 3. **安装位置检查**: ```bash find ~ -name pyinstaller 2>/dev/null ``` ### 📚 相关技术说明 当使用 `pip install --user` 安装时,Python 包会安装到用户专属目录 `~/.local/bin`,该目录通常不在系统默认 PATH 中[^1]。Linux 系统出于安全考虑,不会自动将用户目录加入 PATH,需要手动配置[^4]。 ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值