Create a shared folder using acl


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Create a shared folder using acl
# 8  
Old 04-26-2017
The mode of a directory (whether set by chmod or by setting an ACL) controls who can create files in that directory, remove files from that directory, and search for files in that directory. It has absolutely nothing to do with who can read or write a file that happens to be located in that directory.

If you want to let a large group of people edit a file, set the mode of that file to allow all of those people to edit it (either by creating a group containing those people's userIDs and making the file writeable by that group or by creating an ACL for that file that grants all of those people's userIDs write permission).
# 9  
Old 04-27-2017
Quote:
Originally Posted by jcdole
As I have already said that does not do what I want

Using G+S in PUBLIC SHARED FOLDER
a) deletion of not owned files forbidden : OK
b) creation in user's folder : OK
c) creation in other user's folder : OK
d) editing files owned by others in its own user's folder : KO access denied
d) editing files owned by others in any other folder ( owned or not owned ) : KO access denied

files are marked as
user::rw-
group::r--
other::r--
Well, that would be your problem. The group and other flags define whether the files can be read/written/executed by same group or others. Leaving them at r-- all the time guarantees they'll never be writable to anyone but their owners.

Make the file group-writable and others in the group will be able to write to it. etc.

Last edited by Corona688; 04-27-2017 at 12:31 PM..
# 10  
Old 04-29-2017
Quote:
Originally Posted by Don Cragun
The mode of a directory (whether set by chmod or by setting an ACL) controls who can create files in that directory, remove files from that directory, and search for files in that directory. It has absolutely nothing to do with who can read or write a file that happens to be located in that directory.

If you want to let a large group of people edit a file, set the mode of that file to allow all of those people to edit it (either by creating a group containing those people's userIDs and making the file writeable by that group or by creating an ACL for that file that grants all of those people's userIDs write permission).
That exactly what I try to do (see #1 ).
I have created a group which name is publicuser. Every people in that group can do any actions but cannot delete files that they do not owned.
I have created a partition which is public for people in group public user. Others are exclude.
But I failed to make it running the way I want.

---------- Post updated at 19:48 ---------- Previous update was at 19:32 ----------

Quote:
Originally Posted by Corona688
Well, that would be your problem. The group and other flags define whether the files can be read/written/executed by same group or others. Leaving them at r-- all the time guarantees they'll never be writable to anyone but their owners.

Make the file group-writable and others in the group will be able to write to it. etc.
I have try what you and jim suggest to me.
I have not set any things to r--.

I have use two recipe
1°) as you suggest : using
Code:
chown -Rv publicuser:publicuser $A_PUB_FOLDER
chmod -v 0770 $( find $A_PUB_FOLDER -type d )
chmod -v u+s

or
2°) as jim suggest : using
Code:
chown -Rv publicuser:publicuser $A_PUB_FOLDER
chmod -v 1770 $( find $A_PUB_FOLDER -type d )

r-- is the effective mode as said in the ACL documentations.
It is not somethings that I have set somewhere.

Any help is welcome.
# 11  
Old 04-29-2017
Quote:
Originally Posted by jcdole
That exactly what I try to do (see #1 ).
I have created a group which name is publicuser. Every people in that group can do any actions but cannot delete files that they do not owned.
I have created a partition which is public for people in group public user. Others are exclude.
But I failed to make it running the way I want.

... ... ...
No, this is not what you have done! You have to make the REGULAR FILES you want to edit writeable by group publicuser. All that any of the stuff you have shown us does is modify the permissions on the DIRECTORY or DIRECTORIES that contain your files. All of the commands you have shown us so far use:
Code:
find ... -type d ...

and type d only works on directories; not on regular files.

If you want regular files to be editable by everyone in group publicuser, in addition to what you have already done with the directions, the mode on those files need to be something like 660 AND they must have groupID publicuser.

To make the regular files in a file hierarchy rooted in the current directory have groupID publicuser, you need root or the current owner of those files to set the groupID of those files to publicuser and set the mode of those files to allow the owner and the group to have read and write permission:
Code:
find . -type f -exec chgrp publicuser {} + -exec chmod 660 {} +

# 12  
Old 05-01-2017
To summarize the last few weeks of confusion and argument:
  • Directory permissions who is allowed to create and delete which files where. The special U+S bit on a directory prevents people from deleting someone else's files.
  • The permissions on the files themselves determine who is able to edit them.

No amount of fancy ACL's on the directory they're inside will permit you to edit files set 000.

Use the permissions on the directory to control who's allowed to create files and who's allowed to delete files.

Use file permissions to control who's allowed to edit files.

Use umask to ensure files are created with the correct permissions. This is a user setting, not a file setting. I'm not sure what, if any equivalent there is for ACL's.

Last edited by Corona688; 05-01-2017 at 02:50 PM..
# 13  
Old 05-14-2017
Ok that works using ACL.
Here the full procedure I have used.
Code:
Goal : In folders defined as "PUBLIC" for users in group "publicuser', any users can do anythings but cannot delete objects they do not own.  
  1. 1st Step :
  • Creation of initial group, user and folders
Create group publicuser Create user publicuser (no login user), user_test1, user_test2
  • Add publicuser, user_test1, user_test2 to group publicuser
Create a new folder :
  • mkdir -p /d_pub_folder
  • chown publicuser:publicuser /d_pub_folder
Create sub-folder for each regular user
  • mkdir -p /d_pub_folder/user_test1
  • chown user_test1:publicuser /d_pub_folder/user_test1
  • mkdir -p /d_pub_folder/user_test2
  • chown user_test2:publicuser /d_pub_folder/user_test2
Set properties on new folders
  • chmod -R 770 /d_pub_folder
  • chmod -R g+s /d_pub_folder
  • chmod -R +t /d_pub_folder
Set ACL on new folders #set user to rwx, group to ---, group publicuser to rwx,other to ---
  • setfacl -R -m u::rwx,g::---,g:publicuser:rwx,o:--- /d_pub_folder
#set default : user to rwx, group to ---, group publicuser to rwx,other to ---
  • setfacl -R -d -m u::rwx,g::---,g:publicuser:rwx,o:--- /d_pub_folder
  1. 2nd Step :
Files creation Create new files owned by each user in their respective folder
  • su to user_test1
  • echo "Create by user_test1 in user_test1's folder" > /d_pub_folder/user_test1/testfile_1.txt
  • su to user_test2
  • echo "Create by user_test2 in user_test2's folder" > /d_pub_folder/user_test2/testfile_2.txt
Create new files own by user_test2 in user_test1's folder
  • echo "Create by user_test2 in user_test1's folder" > /d_pub_folder/user_test1/testfile_4.txt
  1. 3rd Step : ACL Check from a "public" folder /d_pub_folder/....
  • 1°) OK : any user can create a file in it's own folder
  • 2°) OK : any user can create a file in folder owned by others
  • 3°) OK : any user can modify a file they owned in folder owned by others
  • 4°) OK : any user cannot delete a file they do not owned any where
  • 5°) OK : any user can modify a file they do not owned using vi in a terminal emulator (Konsole)
What does not work :
  • 6°) FAILED : any user cannot modify a file they do not owned using KATE or KWRITE in graphical session.

For linux user using KDE, for the moment there is in a problem to modify a file which you are not the owner.
From Opensuse people :
Quote:
Yes, this is currently not implemented.
KTextEditor (and thus katepart/kate/kwrite) creates a new file and rename()s it to the new location for atomic updates.
Only the usual permissions are applied.
A bug report has been reported to KDE.

Anyway thank you everybody for taking your time to help me.

Despite the problem with Kate or Kwrite, I mark this thread solve.
Site administrator are free to remove the tag if necessary.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Use programs in shared folder except ones in my home dir

(0 Replies)
Discussion started by: beca123456
0 Replies

2. UNIX for Dummies Questions & Answers

ACL (POSIX and NFSv4) Support over NFS shared drives on different Unix platforms

Hello, I have a question regarding ACLs and their availability across different Unix platforms via NFS share. If I have an AIX/FreeBSD/Solaris/HP-UX client that has an nfs share from a different system mounted on it, will the ACLs on the nfs share be processed properly? My guess is that as... (2 Replies)
Discussion started by: bstring
2 Replies

3. UNIX for Dummies Questions & Answers

Trouble setting up a shared folder

I'm trying to set up a folder in my home directory that will be shared with another user but for some reason it is not working this is what I've done, I have tried two different ways using ACL's and chown/chgrp etc I set up a group called say: sharedgroup and added both my user (john) and fred... (3 Replies)
Discussion started by: 14952john
3 Replies

4. Shell Programming and Scripting

command to connect the shared folder

Hello, I am using unix through cygwin application in my office machine and here i encounter a problem which i want copy certain big files from a shared folder shared folder--\\Parwvm000154\docs to my local machine c:/ I'm really honor if i clarified with the command. Regards... (1 Reply)
Discussion started by: thelakbe
1 Replies

5. Shell Programming and Scripting

See shared folder

Hello, I want to list all shared folder in terminal in local. I haven't found the command for, i'm on bash in mac os x. Thanks (2 Replies)
Discussion started by: protocomm
2 Replies

6. UNIX for Advanced & Expert Users

Set ACL automatically for new folder/objects

Hi, In our bank production environment - IBM AIX 5.3, we have a particular parent folder inside which an application creates temporary folders & files. These temp folders exist for the lifetime of the user session within the application and then get deleted automatically. Since these temp... (1 Reply)
Discussion started by: deepaksinbox
1 Replies

7. Ubuntu

mounting shared folder at boot

Hi All Everytime a reboot my machine "hostB" I have to mount a shared (with machine "hostA" ) NFS folder giving this command sudo mount hostA:/sharedFolder /sharedFolder How to use fstab in order to do this automatically? I should say hostA:/sharedFolder /sharedFolder ... (0 Replies)
Discussion started by: manustone
0 Replies

8. Filesystems, Disks and Memory

can folder shared with NFS (/usr/)

hello i wanted to ask you i try to setting: pc server name: A pc user name: B pc user name: C server A is opensuse 11.2 with kde 4.3.5 and last kernel so i create NFS server, i think.. folder (/usr is all softwares and library) because server A can share to PC A. because all... (0 Replies)
Discussion started by: tunjin
0 Replies

9. Shell Programming and Scripting

how to create folder and sub-folder in UNIX ?

Hi all, I have the following code to check the whether the folder is exist in my system. if ; then echo 'folder exist'; else echo 'folder not exist'; mkdir /home/batch/testing ; fi When I remove the "testing" folder from "/home/batch" directory, the code is working fine. But when I... (2 Replies)
Discussion started by: suigion
2 Replies

10. Shell Programming and Scripting

Need help to create ACL

Hi, I generated a script that will create the list of dir/sub-dir and will allow to create the same on diff server. this is what i have done : #!/bin/ksh # Script to migrate the directory between the two servers. # Ver 0.1 # Author Krishna. D # c - create and e - extract directory if ;... (1 Reply)
Discussion started by: krishnadvn
1 Replies
Login or Register to Ask a Question