Easy-to-follow video tutorials help you learn software, creative, and business skills.Become a member
Now that we've talked about users and we've talked about groups, we're ready to talk about file and directory ownership. Ownership is an essential part of working in a multiuser environment. It is how Unix can tell which files belong to you, which ones you can access and which ones you can't. You can see the ownership of files and directories whenever we do ls -la. It's the second and third columns that you see there. So the owner of all of these files and directories except for one is going to be kevin. The one that you see as root is the parent directory of that. That's the /Users directory.
That's going to be the parent directory and it's owned by root. But my User folder is owned by me and all the things that are inside that folder are owned by me. The group that owns it, or you can say the group that's assigned to it, is staff. Now we don't need to worry too much about groups on Mac, but I just want you to see it so that you have the conceptual understanding. For contrast, let's take a look at the other user that I've set up on my computer, ls -la /Users/lynda/. So we can take a look at her directory and her files and we can see that the owner of all of these files is lynda.
The group is the same, the group is staff. But hers is lynda where mine is kevin, so we have different ownerships. You can now see that. You can also see that the owners in the group are maintained separately. So when we talk about permissions, we'll be able to set permissions based on the owner and on the group. We can do it separately. And so therefore files that I'm the owner of, I can have one set of permissions, but files that are in my group, I can potentially share with Lynda. I could have files that are readable by anyone in my group and then Lynda and I could both read those files. Even though we don't own the file, we could share it and have those group settings.
So what I'd like us to do is I am going to change into my Unix files directory that's in my User home directory. Let's clear my screen so we can see those files. I am going to create a new file in here. I will just do it using touch and I'll call it ownership.txt. You can really create this anywhere. It's just to have a file that we can work with. So let's do ls -la again. I'll clear the screen. So now we can see that ownership is there and any new file that you create is going to be owned by you. That makes sense, right? It's also going to get your default group. Everyone has a default group and that's what's going to get assigned to it by default.
How do we go about changing that? Well, we do it with the command called chown or chown, depending how you want to say it, but it stands for change ownership. That's where it comes from, change ownership, and so we use chown, space, and then we put in the user:, the group. So we could say, for example, kevin:staff and then the name of the file or directory and that would change the privileges and in this case, I'm changing it from kevin:staff to the kevin:staff. It's redundant, but you can see that it does it.
We also can specify those by just putting in chown kevin ownership.txt, like that. That will change just the owner. Or we can change just the group by doing it with the colon and the group. The colon stays with the group and that lets it know all right, I am not changing the owner. I am only changing the group for this. So we also can do the same thing for directories just so you see. Let's do-- we have test1 as a directory there. Go ahead and just we're not actually changing them to anything different. We are just changing the same one and that will change the owner of the directory.
Directories have owners too. But it doesn't change all the contents that are inside the directory. They all keep whatever ownership they already had. If we want to change everything inside of it then we use the R option, -R. Just like we had for copy and remove, we have this R which stands for recursive to tell it okay, not just this top directory, but everything in it, recursively move through all of the contents of this directory and change all of those ownerships. Okay, so that's how you do is with -R. Just for an example, let's try chown lynda:staff ownership.txt.
Comes up and it says Operation not permitted. Well, you may be thinking "Well, geez what uses this chown if I can only change it to myself, to the person that already belongs to it?" Well, that's true and there's actually a way around it which I'll show you in just a moment. The reason why you can't do it is because we don't want to be able to just give files to other users for security reasons. We wouldn't want to, for example, be able to launch a process and have some kind of program running and then be able to stop and change its ownership permissions to belong to someone else. That's a security concern.
So we are not able to do that. The way that you can do it though is if you are an administrator on the machine. On the Mac that's something that could be managed in those System Preferences for Accounts. If we do that, we can use sudo. We'll be talking about sudo later in this chapter, but I just want to show you for now that you can do it. That if we say sudo chown lynda:staff ownership.txt, it overrides that and it says okay, sure. It wants to know your password to make sure that you are allowed to do this and I put in my user password that I use to log in as kevin, so it's just re-authenticating me to be able to do this.
Now ls -la and now you can see that it's owned by lynda. Now let me do it. So sudo in front of it lets us do chown and so chown is really not that useful without that sudo, but I wanted just to go ahead and see it now even though we are not going to talk about sudo for a couple of movies. Let's just change it back. Let's make it my file again, kevin, there we are and ls -la. Now you can see that it changed it back. You may have noticed that it didn't ask me for a password the second time. It remembered that I had recently entered it.
But we'll talk more about how that works when we cover sudo in depth. Now before we end and move on to talk about permissions, I just want to give you a anecdote of a real world example where I ran into this that it was not sort of web development related, which is the place where I normally end up dealing with ownership and permissions. I bought music from iTunes and I wanted to share it with my wife who is authorized to use my music. So I took it out of iTunes by dragging it on to my desktop and then over our local home network I put them on her Mac. When it got to her Mac though, she couldn't open them up and she tends to me saying "Hey, this isn't working. I don't know why not." Well, it turns out that the owner of the file had not changed.
It still was being owned by me. So even though the files were now on her computer, she didn't have ownership of those files and wasn't able to open them. So I just went on her computer, opened up Terminal, changed the ownership recursively for the folder, and boom! Suddenly she had the ability. She now owned the files and she was able then to play the music. So that's the case we're really knowing what's going on under the hood in Mac OS X and being able to work with Unix can really help you out in real-world non-command line scenarios. Now that we know about the file ownership, we are ready to talk about file and directory permissions, which is what we'll do in the next movie.
Get unlimited access to all courses for just $25/month.Become a member
Access exercise files from a button right under the course name.
Search within course videos and transcripts, and jump right to the results.
Remove icons showing you already watched videos if you want to start over.
Make the video wide, narrow, full-screen, or pop the player out of the page into its own window.
Click on text in the transcript to jump to that spot in the video. As the video plays, the relevant spot in the transcript will be highlighted.
Your file was successfully uploaded.