Petro Pikh
Petro Pikh

Reputation: 118

Python - chown folder by username

I'm trying create script for chown folder owner, but I have some problem with it.

I'm have are lot of folder in /home. For examle:

/home/user1
/home/user2
/home/user_n

And want to change owner for folder based on folder name. For folder user1 need owner user1, for folder user2 need owner user2, for user_n owner user_n.

Now I have:

#!/usr/bin/python

import os

# Show only filders in /home
path = "/home/"
folderu = [f for f in os.listdir(path)
        if os.path.isdir(os.path.join(path, f))]
print folderu

This is print for me all folder names in /home.

I'm trying this:

#!/usr/bin/python

import os
import pwd
import grp

# Show only filders in /home
path = "/home/"
folderu = [f for f in os.listdir(path)
        if os.path.isdir(os.path.join(path, f))]
print folderu

for somevar in folderu:
        uid = pwd.getpwnam(folderu).pw_uid
        gid = grp.getgrnam(folderu).gr_gid
        os.chown(folderu, uid, gid)

But this can't working.

Upvotes: 1

Views: 3957

Answers (1)

Petro Pikh
Petro Pikh

Reputation: 118

It`s working script:

#!/usr/bin/python

import os
import pwd
import grp

# Show only filders in /home
path = "/home/"
folderu = [f for f in os.listdir(path)
    if os.path.isdir(os.path.join(path, f))]

for somevar in folderu:
    uid = pwd.getpwnam(somevar).pw_uid
    gid = grp.getgrnam(somevar).gr_gid
    os.chown(somevar, uid, gid)

Upvotes: 1

Related Questions