Ubuntu共享文件夹权限设置

在Ubuntu中设置共享文件夹的权限(只读、读写、无权限),主要通过两种方式实现:‌文件系统权限‌和‌Samba共享配置‌。以下是详细步骤:

‌一、文件系统权限设置(基础权限)‌
1. ‌修改文件夹所有权和权限‌

① 创建共享目录(示例)

sudo mkdir /mnt/shared

② 创建新系统用户

sudo adduser 共享用户名 # 创建新系统用户

 #或者

sudo useradd -M -s /usr/sbin/nologin 共享用户名 # 创建无登录权限的用户

③  设置Samba专属密码

先安装Samba‌

sudo apt update

sudo apt install samba

sudo smbpasswd -a 共享用户名 # 设置独立于系统密码的Samba访问密码

④添加用户到用户组(如组名为 "sharegroup")

sudo groupadd sharegroup

sudo usermod -aG sharegroup 用户名 # 将需要访问的用户加入组

⑤修改文件夹所属组

sudo chgrp -R sharegroup /mnt/shared

⑥设置权限:

# 读写权限:组用户可读写

sudo chmod -R 775 /mnt/shared # 所有者和组可读写,其他人只读

# 或

sudo chmod -R 770 /mnt/shared # 仅所有者和组可读写

# 只读权限:组用户只读

sudo chmod -R 750 /mnt/shared # 所有者读写,组只读

# 或

sudo chmod -R 755 /mnt/shared # 所有者读写,组和其他人只读

# 无权限:拒绝特定用户访问

sudo chmod -R 750 /mnt/shared # 仅所有者和组可访问(拒绝其他用户)

2. ‌验证权限‌

ls -ld /mnt/shared # 输出示例:drwxr-xr-x 表示其他人只读


‌二、Samba共享设置(网络共享权限)‌
 1. 编辑Samba配置文件‌

sudo nano /etc/samba/smb.conf

在文件末尾添加以下配置(根据需求选择一种):

读写权限配置‌:

 [Shared]

   path = /mnt/shared

   browseable = yes

   writable = yes # 允许写入

   valid users = @sharegroup # 允许访问的用户组

   create mask = 0775 # 新建文件权限

   directory mask = 0775 # 新建目录权限

只读权限配置‌:

 [Shared]

   path = /mnt/shared

   browseable = yes

   read only = yes # 设置为只读

   valid users = @sharegroup

‌无权限配置‌(拒绝访问):

 [Shared]

   path = /mnt/shared

   browseable = no # 隐藏共享

   guest ok = no # 禁止来宾访问

   valid users = 特定用户名 # 只允许特定用户(不包含拒绝的用户)

2. ‌重启Samba服务‌

sudo systemctl restart smbd nmbd


‌三、权限组合说明‌

权限类型

文件系统命令

Samba配置关键项

‌读写‌

chmod 775 或 chmod 770

writable = yes

‌只读‌

chmod 750 或 chmod 755

read only = yes

‌无权限‌

不添加用户组 + chmod 750

不添加用户到 valid users

        权限对照表

权限类型

关键配置项

生效场景

读写

writable = yes

Samba共享

只读

read only = yes

Samba共享

无权限

不在valid users列表中

所有共享类型


‌四、验证权限生效‌

‌本地验证‌:

# 尝试用不同用户创建文件

  1. sudo -u 用户名 touch /mnt/shared/test.txt

    • 成功:读写权限有效

    • 失败:检查用户组和文件权限

  2. ‌网络共享验证‌:

    • 从另一台电脑访问共享:

      smb://ubuntu_ip/Shared

    • 输入已授权的Samba用户密码测试读写操作。


‌五、高级权限控制‌

‌精细控制‌:使用ACL(访问控制列表)细化权限:

sudo apt install acl

sudo setfacl -m g:sharegroup:rwx /mnt/shared # 赋予组读写执行

sudo setfacl -m g:readonlygroup:r-x /mnt/shared # 只读组

匿名访问‌(慎用):

在Samba配置中添加:

guest ok = yes

public = yes

核心原则‌:

  1. 文件系统权限控制本地访问。

  2. Samba配置控制网络访问。

  3. 两者需配合使用以确保安全。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/92228.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/92228.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

小程序点击菜单栏实现样式动态切换

小程序点击菜单栏背景样式动态切换 前言:今天做一个小程序项目,要做一个菜单栏动态切换的功能,因为这种需求很常见,这次干脆记录一下,帮助别人的同时,自己下次也可以直接照搬使用。 效果截图如下&#xff1…

掌握工程化固件烧录,开启你的技术进阶之路-FPGA ISE(xilinx)

1、电脑需先行安装ISE14.7。若已完成安装,此步骤可略过;若尚未安装,在后续章节会介绍如何安装ISE,由于ISE14.7的安装程序体量庞大,可借助U盘进行传输。同时,电脑需预留至少30G的存储空间以用于安装该程序。…

Android 之 面试八股文

​1.Activity生命周期​​​​问题​​:描述Activity从启动到销毁的完整生命周期方法,并说明onSaveInstanceState()的调用时机。​​参考答案​​:onCreate()→ onStart()→ onResume()(活跃状态) → onPause()&#x…

暴力解决MySQL连接失败

本文涉及清空root密码完全重置MySQL权限彻底卸载并重装MySQL请务必在测试/本地环境操作,生产环境慎用!场景Spring Boot项目连接MySQL一直报Access denied for user rootlocalhost,改密码、换驱动都没用?步骤1:完全重置…

前端开发:CSS(1)—— 什么是CSS?

本文用于记录前端开发的学习过程。前面我们已经学习了html的编写,知道了Web开发的一些最基本的知识;在html的学习过程中,我们提到关于样式的设计和修改常需要使用CSS来实现。那么CSS到底是什么东西呢?它又如何来设计样式呢&#x…

数据结构(4)—栈和队列

一、概念1.栈只允许在栈顶位置入栈和出栈元素,链表可以在任意位置插入和删除元素,栈和队列只允许在指定位置插入和删除元素2.链表、栈和队列都是一种线性结构(一对一),栈和队列是一种特殊的表状结构二、栈1.基础概念先…

vue2.如何给一个页面设置动态的name。不同路由使用一样的组件。页面不刷新怎么办?

page里面detail.vue export default { name: detail, } vue2里面.vue的页面都会设置一个name,这个通常是写死的。不能在页面动态设置的。页面刷新缓存通常都是根据这个name来判断的。如果name写死。我几个页面都通用这一个页面的话,他也不刷新页面啊。 比…

浮动IP(Floating IP)的删除通常需要满足什么条件

浮动IP(Floating IP)的删除通常需要满足什么条件在云计算或网络环境中,浮动IP(Floating IP)的删除通常需要满足一定的条件,以确保操作不会影响现有业务或导致网络中断。以下是常见的可删除浮动IP的场景和条…

机器学习之随机森林(Random Forest)实战案例

一、算法基础 首先,来介绍一下算法的基础语法 class sklearn.ensemble.RandomForestClassifier(\ n_estimators’warn’,\ criterion’gini’,\max_depthNone, \ min_samples_split2,\ min_samples_leaf1, \ min_weight_fraction_leaf0.0, \ max_features’auto’…

《C语言》指针练习题--1

《C语言》指针练习题–1 1. 交换两个整数的值 题目描述: 编写一个C程序,定义一个函数swap,使用指针参数交换两个整数的值。在main函数中调用该函数并输出交换后的结果。 解题思路: 为了交换两个整数的值,可以通过指针传…

应急响应整理

目录 windows下 1. 检查账号安全 利用注册表实现用户隐藏 粘滞键后门 2 检查异常端口、进程 3. 检查启动项、计划任务、服务 4. 日志分析-Windows 常见事件类型、登录类型 Linux下 1. 账号安全 2. 历史命令 3. 检查异常端口 4. 检查异常进程 5. 检查开机启动项 …

一文读懂 C# 中的 Bitmap

一文读懂 C# 中的 Bitmap 一、Bitmap 到底是什么? 二、推荐使用场景 三、实战 Demo 基础用法:加载、创建和保存 进阶用法 缩放图片 裁剪图片 颜色调整(反色处理) 四、核心方法和属性说明 常用函数 常用属性 五、避坑指南、注意事项 六、总结与决策 一文读懂 C# 中的 Bitmap…

预约时间组件

效果图如何使用<template><view><button click"pickerTime(0)">预约时间0</button><button click"pickerTime(1)">预约时间1</button><button click"pickerTime(2)">预约时间2</button><but…

Android 开发 - Service、Camera、Layout Design 自定义设备类型和大小

一、Service 启动 1、基本介绍 &#xff08;1&#xff09;startService()其他组件通过调用 startService() 启动 Service 后&#xff0c;Service 可在后台无限期运行&#xff0c;即使启动 Service 的组件被销毁也不受影响&#xff0c;一般情况下 startService() 是执行单一操作…

Qwen Image:开源中文渲染SOTA,重塑文生图技术边界

1. Qwen Image的技术定位与行业痛点1.1 文本渲染&#xff1a;文生图领域的长期技术瓶颈传统文生图模型在图像美学与真实感优化上已取得显著进展&#xff0c;但多语言文本渲染始终是行业难以突破的瓶颈。主流模型在处理中文等非字母语言时&#xff0c;常出现字符断裂、布局错位、…

Docker入门教程:在腾讯云轻量服务器上部署你的第一个容器化应用 (2025)

更多云服务器知识&#xff0c;尽在hostol.com“在我电脑上明明是好的啊&#xff01;”这句话&#xff0c;是不是堪称程序员“甩锅”排行榜第一名的金句&#xff1f;当你辛辛苦苦开发完一个应用&#xff0c;把它交给同事或者部署到服务器上时&#xff0c;却发现因为它依赖的某个…

DevOps平台结合Gradle实现打包流水线

在现代软件开发中,持续集成与持续交付(CI/CD)已成为团队提速、降本增效的核心实践。Gradle作为强大的自动化构建工具,常被用于Android与Java项目的构建打包任务。而将Gradle集成进企业的DevOps平台中,不仅可以标准化构建过程,还能自动化打包、测试、发布的全流程,大幅提…

Node.js 操作 MySQL

目录 一、什么是 MySQL&#xff1f; 二、MySQL 的功能概览 三、MySQL 的安装与启动 安装 MySQL 启动服务 四、Node.js 如何连接 MySQL&#xff1f; 使用 mysql2 模块&#xff08;推荐&#xff09; 建立连接 五、创建数据表和插入数据&#xff08;SQL 初始化&#xff09…

解锁高效敏捷:2025年Scrum项目管理工具的核心应用解析

一、为什么Scrum团队需要专业项目管理工具&#xff1f;在敏捷开发实践中&#xff0c;Scrum框架虽然提供了基础的工作流程&#xff0c;但缺乏对任务细粒度管理的支持。传统白板或简单看板工具往往无法满足现代敏捷团队的需求&#xff0c;导致&#xff1a;冲刺规划混乱&#xff1…

途游大数据面试题及参考答案

Java 的反射机制是什么?主要应用在哪些场景? Java的反射机制是指程序在运行时,能够获取自身类的信息(如类名、属性、方法、构造器等),并动态操作这些信息的能力。正常情况下,Java代码编译时类型已确定,而反射打破了这种编译期约束,让程序在运行时灵活操作类和对象。 …