this post was submitted on 14 Sep 2024
19 points (95.2% liked)

Android

27895 readers
312 users here now

DROID DOES

Welcome to the droidymcdroidface-iest, Lemmyest (Lemmiest), test, bestest, phoniest, pluckiest, snarkiest, and spiciest Android community on Lemmy (Do not respond)! Here you can participate in amazing discussions and events relating to all things Android.

The rules for posting and commenting, besides the rules defined here for lemmy.world, are as follows:

Rules


1. All posts must be relevant to Android devices/operating system.


2. Posts cannot be illegal or NSFW material.


3. No spam, self promotion, or upvote farming. Sources engaging in these behavior will be added to the Blacklist.


4. Non-whitelisted bots will be banned.


5. Engage respectfully: Harassment, flamebaiting, bad faith engagement, or agenda posting will result in your posts being removed. Excessive violations will result in temporary or permanent ban, depending on severity.


6. Memes are not allowed to be posts, but are allowed in the comments.


7. Posts from clickbait sources are heavily discouraged. Please de-clickbait titles if it needs to be submitted.


8. Submission statements of any length composed of your own thoughts inside the post text field are mandatory for any microblog posts, and are optional but recommended for article/image/video posts.


Community Resources:


We are Android girls*,

In our Lemmy.world.

The back is plastic,

It's fantastic.

*Well, not just girls: people of all gender identities are welcomed here.


Our Partner Communities:

[email protected]


founded 1 year ago
MODERATORS
 

Hi,

I would like to change the owner of a directory on the sdcard /sdcard/aDirectory

I have a terminal installed on my Android 10 (LineageOS 17) com.android.terminal

sudo is not present so I use su and it works.

su
#Terminal was granted Superuser rights

cd /sdcard
chown 10:10 aDirectory
#I don't get any error message.

stat aDirectory
#Uid (0/root)

So the owner stay root no matter what I'm doing, any ideas ?

all 13 comments
sorted by: hot top controversial new old
[–] [email protected] 17 points 1 month ago (1 children)

What filesystem do you have on that SD-card? Likely FAT32, which does not support ownership.

[–] [email protected] 1 points 1 month ago (1 children)

But is it an SD card.

I mean, the directory name says so, but...

~ $ realpath /sdcard
/storage/emulated/0
~ $

...it may also not be.

[–] [email protected] 4 points 1 month ago (1 children)

It doesn't matter. FAT filesystems - which are usually the default on SD cards, simply do not support ownership or file permissions. Linux emulates these attributes at mount time, but they apply to the entire SD card. You can mount an SD card and tell Linux to act as if root owns everything on the card; you that you own everything on the card; and it will be so until you unmount it and remount it with a different ownership.

These are filesystem level attributes, not device attributes. If you have a modern internal nvme drive and you format it with vfat, you will not be able to set permissions or ownership at the file level, but only at mount time, for the entire drive.

[–] [email protected] 3 points 1 month ago (2 children)

I am talking about some devices using /sdcard to mount internal storage.

[–] [email protected] 2 points 1 month ago* (last edited 1 month ago)

True, but presumably op probably has an sd card if they say they do.

Edit: I see both ways of reading their statements on re-reading them.

[–] [email protected] 2 points 1 month ago (1 children)

You mean, they're mounting something that isn't an SD card to the /sdcard directory? Like something truly evil, such as mount -t btrfs -o subvol=@home / /sdcard? Or do you think there's not anything mounted there; it's just a directory in the root partition? None of that would make any sense.

If they're letting whatever automount tool (eg udevil) do its thing, this is practically impossible. And if they know enough to do it by hand, I think they'd have answered the direct question of "which filesystem" with a filesystem rather than a mount point. Don't you think? We still don't know what filesystem they're working with, since they haven't answered the question.

[–] [email protected] 2 points 1 month ago

something that isn’t an SD card to the /sdcard directory?

Could be.

On my phone (Poco X3 Pro - stock Android 11, MIUI 12) the /sdcard is a symlink pointing to /storage/self/primary which itself is a symlink pointing to /storage/emulated/0, which is /data/media, the user-accessible portion of internal storage.
Though from what I can find it anyway is just emulated FAT filesystem which is actually ext4 under that.

Something about backwards compatibility as the directory used to actually be used for SD cards in the past.

[–] [email protected] 17 points 1 month ago* (last edited 1 month ago) (1 children)

Unless the SD card is using a Linux filesystem, you won't be able to use Linux access permissions.

Most SD cards are preformatted to FAT or exFAT in order to maximise compatibility. If you don't need to use the card on any non-linux devices you should be able to reformat it and gain the ability to chown/chmod (should go without saying, but back up any data on the card you want to keep before this)

[–] [email protected] 3 points 1 month ago

There are other comments here which might have some relevance but imo this one is the most likely the most applicable. I've had this experience with other filesystems over and over and it seems like it's almost always a problem. Apparently NTFS supports permissions in a similar way to Linux if you set it up exactly right, but I've never taken the time to try that.

[–] [email protected] 12 points 1 month ago* (last edited 1 month ago)

Nine times out of ten, running chown on Android is an astronomically bad idea. 10 times of 10, what you're trying to do right now, is an astronomically bad idea.

What is it you are trying to do? Or rather, why?

[–] [email protected] 10 points 1 month ago

If you want to change the owner of fat partition, you can do it while mounting, e.g. mount -t fat -o uid=10,gid=10 ......

[–] [email protected] 1 points 1 month ago* (last edited 1 month ago)

Thanks all for your input !

So yes /sdcard was /storage/emulated/0 and it's a real sd-card.

That was indeed formatted as FAT, I reformatted into EXT4 (from a desktop Linux) put the SD-card back into the phone and started the phone.

Ive tried (in the phone)

su
chmod 777 /storage/emulated/0 #yes it's still mounted as emulated !
stat /storage/emulated/0
#...
#Access: (0771)
#....

So I'm still blocked... any ideas ?

Thanks.