Good morning, good afternoon, good evening. Wherever you're hailing from, welcome to another episode of Red Hat Enterprise Linux Presents. I am Chris Short, executive producer of OpenShift TV. I am joined by the one and only, Scott McBrion. Scott, how are you today? Doing great, Chris. For the audience's benefit, I would like to point out that Scott said, literally 10 seconds before we went on air that what could possibly go wrong? So everything will. I mean, it's a lot of events. So there's always something that goes wrong. It's more exciting. We'll stop. And, you know, we'll see how we roll with it. As long as we don't have, you know, 10 potentials and meltdowns, it's probably fine. Yeah, I'm sure we'll get through it, no matter what. It is Linux, after all. True, true, true. So what are we talking about today? So I thought today might, this is her last show. We talked about directories and file systems a little bit. And I thought that maybe a good kind of dovetail to that subject would be SE Linux because they're kind of related. Yeah, so while we just start off with just a little bit about what SE Linux is, SE Linux is a component of the Red Hat and Res Linux kernel that applies contexts to files, ports, and processes on the system and then has a just enormous rule set that describes what should be given access to whom. So like if you are a web server process, you're running with context. And based off of that context, there's rules that say web server processes should be allowed access to the following kinds of files and be able to open and connect to them this type of port on the system. Yes. And so we manage that just enormous set of rules through something called the SE Linux policy. And then all the little components kind of fall into place and so on. Just start diving into that if you would like. Yeah, I just wanna point out folks that the most recent Kubernetes or Run-C vulnerability, Run-C being the container runtime underneath everything that basically runs in a container these days. The vulnerability was stopped dead in its tracks if SE Linux was running in an enforced mode. So, or enforcing mode, I should say. SE Linux is an awesomely powerful tool and if you master it, you will have done yourself a great service or not even master it, but just like be handy with it, right? Right, but I mean, first thing is don't set in force zero, which is the opposite of Chris's shirt. Set in force one folks. So we're talking about today. I will share the link and so forth as, yeah. Yeah, so if it's all in enforcing, I think that you're halfway there. Right, like it's gonna stop a lot of things dead in its tracks, yeah. Right. A lot of bad things I should say. The other thing that will make your life easier is if you recognize that you should just put things where they're expected. Like if you do that and run things where they're expected, right? So don't have your web server attaching you some wonky port number because that's gonna create problems. But if you attach it to port 80, port 443, things will just work based off of the default as the next policy. And if you wanna veer from those defaults, you can, but you need to know more. Yeah, and I think it's worth saying that a lot of people don't run web servers on port 80 or 443 nowadays just kind of because they're running multiple web servers on a system often. And that's entirely possible too, that you'll need to say, hey, port 8080, port 8081, 8082, 8083, right? Like so using that example, what do you wanna go through? Oh, well, why don't we just start with the basics here? Let me share my screen. Maybe. You can do it, I believe. Oh, it's hard. I know. Just the green button. You're gonna make fun of my tabs again. I'm not gonna make fun of your tabs this time. That was pre-show. The audience will now. That's. Oh, dear. All right. So first I will say, let's just take a look here. SC status. Status, yeah, my favorite command. So like what's going on with the system? This is usually one of the things I run. Right, so I think this one is probably the most important right here, right? We're running an enabled mode. The other thing that would be important is the policy that you're using. Again, this is the set of rules that get loaded. We ship with several, but the default policy that we use is called targeted because it targets specific services, but leaves anything outside that list as unconfined, right? So processes that don't come with well are gonna run without any SC Linux context applied to them. And if you're not familiar with the interface Scott's using right now, this is called cockpit. It's part of RHEL and has been part of Fedora for a while now. It gives you a web-based terminal as well as, as you can see everything on the left, a number of like options that you can choose from to tweak your system as desired. Yeah, and you'll notice there is an SC Linux option down here. There is. Which actually like gives you some stuff. So for this one, right? SC status was what we used on the command line. You can just look here to see whether SC Linux is turned on or off, right? And we'll get to some of these errors in a minute, but. So then if you are wanting to look around it, kind of what the components of system are, there's an extra option included in a lot of the commands that would interact with SC Linux, capital Z, that will show you the SC Linux context. So for example, I can LS dash capital Z. And what that adds is this field here to our output. And that's the SC Linux contexts of these files. So I did a listing in Roots Home and you can see that they're admin home T type files. And if I did something in. I think one thing worth pointing out here too is notice on the far left where, you know, there's a directory and it shows its permissions. There's a dot after it. The dot also represents that SC Linux is doing something on that directory if I remember correctly. I had never heard that. I think it, I think so because I just think so. Let me double check. I'm pretty sure that is, or at least it used to be the case. It might mean more now. Yeah, I had never heard that, but it's quite possible because I don't know everything. I know that's shocking that I don't know everything. I mean, especially when it comes to RHEL, right? Like you should know that. Because it's a very simple product right at Enterprise Linux. I mean, it's like tiny. All right. So over here. So GULS uses a dot character to indicate a file with an SC Linux security context. There you go. There you go. So over here at today, over here in Etsy, we have Etsy type files. We also have system configuration or system type files. And so these are the SC Linux contexts that have been applied to files throughout the file system. If we do a PS with a Z. Oh, fun. I've never done this before. Yeah, so that adds this field right here. So I said that your processes run with a context and based off of that and the context of the resource they're trying to gain access to, we decide whether they are or aren't according to the policy. So you can see what context your applications are running with. And so let's say, am I even running a web server? I don't know. Ooh. Oh, you don't even know I've installed. Oh, actually, you know, we can't fix that on this box because it's not attached to its satellite server. Why'd you do that? Brazins on second. Like connect to the VPN because we have to make things hard. As I said, what could possibly go wrong? There you go. Right. Here we go. Just keep saying something good will happen eventually, I'm sure. I mean, it's not like I said, break a leg that would be terrible. No, that's actually good luck. I thought I can tell your VPN connected because you froze for a second. Or was that just very still? You don't know. You don't know me? Still, yeah, that's what it was. So while that installs, let's see, what are other basics do we have? Oh, we'll have to know the log file look in and we'll get into reading some of those logs in a minute. So I can only imagine where those logs live. Would they happen to live under VAR log SE Linux? So it is VAR log. But it's not. Oh, is it? No, because that's for auditing. That's for auditing. I think we're gonna look at VAR logs, sure. Ah. If I will work correctly. But we'll take a look. Okay, so. What? A two minute ETA on downloading some metadata? Good night. Good Lord. I have very slow internet squirrels. For sure. You need to give your squirrels some stuff and go faster. And let's see, what other? So we also need to look at ports. I think that'd be a good one to take a look at. And the, I mean, the biggest thing for me has always been like, I've manually put something in a web server directory and it doesn't have a context applied. Right. And that was going to be, and that's why I was actually starting with HTTPD because I think that's a fairly common use case where people don't put stuff in VAR WWW HTML. Instead, they like create their own slash web and then everything just kind of falls apart on them and they get frustrated and do a 740. So maybe we. Usually all it takes is one command to the directory and you're good. So we would have to apply some context. Yeah. To something like that. We could use the SEManage command, I think, to add like what default context should be assigned to stuff put into this weird directory that we just created for our web stuff.  All right, let's see. Is that just because their custom directory doesn't have the context exactly been? That is exactly correct. That is exactly right. The context matters. And so I'm on a Fedora box. I'm having a hard time finding SEO and X-Logs. I'm legit thinking it's not very well secured because that doesn't even exist here. It's on. It's enforcing. I promise. I'm not making them cry. Maybe you do have a VAR log SEO on X-Tem. No, I don't. It's weird. Well, then you failed. I have failed. Is it just under VAR maybe? No, it doesn't look like it. Hmm, interesting. Oh my dear lord. What are you doing? Downloading the internet? It's that way. See, now someone's calling you out here. If you had less tabs open, this would probably be going faster. Except it's running on another box, which has one browser tab. I'm looking at it. It's got one browser tab. No, actually, the reason it takes so long is because I've been really terrible about being connected to VPN and making sure that I have all the updates. Yeah, and so it's my metadata for YAML. That's probably fairly out of date. And I heard that they push REL 8.4 into our internal satellite repos recently. Oh, if you haven't done that since then, yeah, this is going to be a little bit of a download of metadata. Yeah, although it should be pretty close at this point because we've got an application streams. E-Pool is an extra repository that I have enabled so I pulled all that. That one's also pretty large. And I think this is the REL 8, including 8.4 metadata. Did you know that LSOF has a dash capital Z flag? I did not. It does? LSOF is like an awesome brand. Yeah, LSOF is really cool. I was checking just to see if it did and I did. And I ran it on my Fedora box behind me here. And yeah, it works. I didn't see you switch over to that other mouse and keyboard there, Chris. How'd you do that? And it's this amazing technology called SSH, Scott. You should try it sometime. What? Sorry, I was giving Chris... I was harassing him because he has physical keyboards scattered around his office. Okay, scattered is probably over... It's not scattered. They have a front desk and a back desk. The back desk is like non-main computer-y. There's a Fedora box and a Mac back there. They are used for specific things. This desk that is on wheels and can move around and has a nice camera and mic attached to it are used for work things like this channel. So I don't want to use a program that would allow me to use the mouse and keyboard on the screen behind me, because I can't see it. I don't have eyes in the back of my head. What? I hear there's medical technology that picks that. I don't know if I want that given all my other medical issues. You have to have a weird haircut to make it work. Yeah, I just want to say, like cousin it or not? All right, so finally we're back on track. So I'm running Apache and you can see that my Apache daemons are running with HTTPT type. And there's the loop here.  All right, so Apache has given access to several types of files in its context or its SELX policy rules, but one of the types is this HTTPT SysContentT, right? That means it's for web server content. And so I don't remember who was pointing this out in our chat, but if we look at a randomly created directory, it is this type, not HTTPT SysContentT type. So if I go in and I update my configuration for Apache and I told to share content out of this directory, it's not going to work because when it makes the file open requests to go into this directory and start sharing files, it's going to violate the SELX policy. And what's going to happen is the kernel will simply refuse to offer that action that Apache is requesting. All right, and we can see that, let's do this. Let's see what I have now in my home directory. If I move. Quick question here. Yes. From the audience, is DNF faster? So on RHEL 8, which is what I'm using, DNF and YUM are actually the same. I just wanted you to say it, not me. That's all right. So what I have done is I introduced an error. We'll do something really, really dumb. All right, so I've moved this file from my home directory for my home directory over to Apache's web accessible directory. And you could see that I've given all the permissions, which is typically not what you'd see, but I want to prove a point. And what we're going to do is try to pull up that file. And there we go. This is a symlinix at work, right? Because what has actually happened is the Apache daemon requested to open that file so that it could then read it and transmit it through to the web browser, the client connection. And when it made that access request, we looked at the context of the file, which was admin home T. And we looked at the context of the process, which is HTTP DT. And according to the rules and the policy, that's not one of the kinds of contexts HTTP DT type processes are permitted. And so to the requesting application, the Apache server, it was simply told, no, you cannot have that action. And then the Apache server interpreted that return from the kernel as forbidden, which the unknowing might read this error and go, oh, it's a permissions thing, right? Because it's forbidden and that's a permissions error. But when we look at it, it's clearly not a permissions error because all the permissions are there. So let me set the permissions to something more sane. And then let me update the file context to be correct so that it's within the policy for Apache to access this file. All right, if you've not seen it before, RestoreCon, RestoreCon, we'll look at a configuration and we'll look at the holding directory in this case of RWWHTML and go, okay, if someone wants to place a new file in this directory, what context should it be given? And I'll just take that context that I would normally apply to new files and I'll go ahead and adjust this file. You passed me an argument to make sure it's the same. So what we end up with is now, my file has the correct contexts. And if we go over here to our other tab and just reload the page, right, there's the file that before was forbidden. And in fact, I start the server, nothing. Nothing. So that's how it all kind of plays together. The process is given a context, the resources on the system, like files are given a context. And when a request is made of the kernel to do something by the process, it checks to see whether it's permitted or not. And that's why the 1C vulnerability that Chris was talking about earlier was stopped by SC Linux is because when somebody tried to access a resource that they weren't allowed to do through container workload stuff, the kernel said no. And so even though the run seed vulnerability would have allowed them to gain additional access to the system they weren't supposed to, because they're trying to access a resource that was not contexted for container stuff, the SC Linux policy refused that request. Which is like, this is not the first time SC Linux has stopped a Kubernetes vulnerability deadness tracks. Yes. Pretty much gotten them all. Right. All right. So we could have also manually adjusted the context as well. So for that, there's Chikon. And there's actually several components of a context. There's the user component, that's the first piece. The role component, that's the second piece. The third piece is the type. Those are the three big ones. And there's two additional but optional contexts, which is sensitivity and category. Since student category is used if you wanted to maybe have a much more grandiose setup, where in addition to the process being looked at, there should be what user is the process running as or does that user have the right security credentials to access this sensitivity of file. And so in a place where information might be offered at various levels of security clearance, for example, that's where sensitivity and category could come into place. Cause just because you are certified for secret information doesn't necessarily mean you get access to all secret information across the entire organization. You should still only get secret information that's in your specialty or in your purview of ability. So that's what those two things are usually used for. All right. So if I wanted to switch us back to a port state. So I can say that I want to use Chikon to change the context of the file. That's the type field of the context and before it was set to admin, right? And so I have the context updated. This is now incorrect for Apache to be able to access it. So if I go back over to my other tab and I reload it, right? We've reintroduced the problem again. So let me fix it. All right. I like to restore kind of a lot because then I don't have to necessarily know the string that goes with it. Yeah, you don't have to remember all that fun stuff. Right. Which it's all very important and valid at some point in time. And while you're using SCLinux, but like restore con is just like, all right, I'm gonna make sure this entire directory is good to go now off you go, right? Like I can just basically say inherit and go. Yeah. And there's other files that we got in the file system when we installed Apache. So for example, HTTP, so I noticed that they are a specific type of file. Also HTTP, they are a specific type of file. Oops, log right there. But it's also in the assembly as well. Right. And so there's not just one context that it's given access to. There's a variety of them. Then there are some others that you get to like Apache has given access to FCT type files. That's how it's actually able to go into the Etsy directory and we're gonna access it's sub directory of configuration is given access to, oh, public content T type files. That's something that is just like, any service should have access to it. So like FTP server, for example, has access to public content T or NFS server stuff has access to public content T. I was gonna say FTP, please don't use FTP. I'm doing it one quick short, you don't control me. I'm fine, I'm sorry. All right. So earlier. I said that if we created this random directory, it's not in the place where Red Hat normally expects to live, so it's not gonna get contexted correctly. And sure enough, right? It's default T and Apache does not have access to that. We can prove that by going through and like redirecting stuff there, so. Well, okay, you're just gonna do a system model, that's fair. Yeah, because I don't wanna mess around with the virtual stuff right now. Okay. So all I'm gonna do is I'm just gonna update the settings that was directing us to var www.html. And say, hey, put that it slash web, this new directory that I've created for my. Do you wanna do the, the stans are right above it, var www? I could, but it would be overridden by the second stans of that, cause. Yeah, I was about to say, okay. Yeah, so let's just call that good. I'm gonna go over here and it should give me a found not found error now. Yep. Yep. And then, cause now it's serving out a slash web, so I'm gonna go ahead and move my file over there. All right, and let me, actually, instead of moving it. Did you want to send Lincoln? Let me just create one. Something in it, echo and emoji or something. Like this, and you know what? To make things even easier, I'll make that the next file. All right, so now all I have to do is pull out the address. All right, so what I'm expecting right now though, we'll see if it works, is I want it to give me a forbidden message just like before. It didn't, it sent me here, but did not give me the index that I provided. That's why I said, do the, anyway. All right, so earlier when we created the web directory, we had changes context, and then it worked, right? It was getting access to there and everything was cool. When I put a file inside of that directory, it also got this default T context, which Apache is not given access to. So what happened was my client requested the index HTML, the kernel refused it, so Apache then served up the test page instead. So if I change this, so then now it has the right accessible content type. Now if I go back over to my other tab and I reload it, right, there's the file content, right. Okay, but you'll notice that this time I didn't use RestoreCon. No, because... Well, let's see. So RestoreCon restores the file context that would be assigned to new files out to this directory. But we know that for this directory, we put files into it, they're given default T, which is not the context I need. Right. All right, so... Because you didn't set the web directory to be in the correct context either. Why did? You did? Did I miss that? I must have been looking at your question. Oh, no, I didn't. Ah, see. But let's say that I fixed that. Okay, you and the up arrow need to find each other. Or control R, one or the other. The problem is I'm doing like ls-lz and that becomes my last token so like escape. doesn't work anymore. Oh, yeah. All right, so now I've changed the context on slash web. Interesting. Because it's not looking at the context of the directory that owns it. Right. Make the decision. It's actually looking at another set of configuration on the system to figure out what we should do. Because slash web isn't in that other place. It's default T. It's default, yeah. Yeah, so let me figure out the command to look that up. Let's E-manage something. This is where the new elevator music comes in, folks. All right, it is S-manage f-context, I think. Go over here, there we go. Okay. All right, so essentially right here, this is the rule that tells us what context should be assigned by default in a directory. So if you're putting stuff in var www SVN hooks and all the subdirectors and files underneath of that, whoops, they should get this system new object are Httpd sys script exec T type context. And slash web isn't listed in this list, which is why it gets to default. So if I want to add it. Forget the syntax now. I just saw it, too, that's what's saying. Web C slash dot splat or splat dot. Yep. I need to put that in singles. You just give it the Http type, right? My manager to D dash T plus try with dash T and see it makes it happy, right? So now let's do my, there it is. And now that I've added it to the managed file contexts. If you do a RestoreCon now, what happens? Well, why don't we just create a new file first? Oh, there you go. Yeah. So cool. And then then we've got this other one. We need to RestoreCon and now we're cool. All right. So we've set up that kind of mapping between the two. That's awesome. And when I create subdirectories here, because like maybe have some JavaScript app or something else that should live here, that directory and any of its children directories, they'll all get contexted with Httpd sys content T. And if you need to do something like make those script T types, you could create an additional SE manage rule or file context rule for that sub directory that should get a different context to sign the stuff that's put in there. So. So where's the foot gun here? The foot gun. Yes. The thing that you do to shoot yourself in the foot. Oh. The only thing I can think of is that Reg X is involved, right? Like test your Reg X is what I would say. Yeah, but we use a we use a wildcard Reg X on the end, right? And that's to make sure that it's slash web and everything underneath. And you can set up like here, let's do this. So content or exact. Your script, I just saw one. User. Yeah, that's personal. Script exact. Because it's in whole. Yeah. Yeah, let's do this. Control C that. Do our list again and grip it for www. We'll see what it's currently set to in regular Apache. HTTP the script exact team. Okay. Make sure that it actually worked. It did not. So you said everything will be fine. Nope. The bueno. Oh. One second. I think I know the problem. I didn't see it. Nope, still no. All right. Well, I don't know. I'll have to look it up. Interesting. Yeah. It's what I was thinking was that the ordering inside the follow contact settings might be wrong. Like we need to do the more specific directory first. That's why I deleted both and then added them back in the wrong or not adopted order. But that's not, that's not clearly not the problem. So something different. So yeah, maybe that's, maybe that's foot down. Trying to do multiple contexts, things get harder. Or maybe it's that if you do a Chican dash capital R or a restore con dash capital R, things can get a little bit walkier. Weird, yeah. Yeah. Especially Chican, actually restore con probably would be okay. But using Chican dash capital R, we're personally doing it with like Jack with all these sub directors that have their own specific context to work right. And I should point out in the docs, it says you can use individual domains to set things as permissive versus not permissive or enforcing. Again, that's another thing where it's like you're playing with fire if you don't do that right. So, SC Linux is very flexible. You can configure it however you see fit. But as you're doing that, you have to make sure that you're not creating a security hole in the process. Sorry, before we were talking about looking at logs and some trying to introduce error states that we could find where that log is. There you go. Cause that's the other piece. I think that it's important to know, okay, good. I love it when an error means good. So it looks like it goes in viral messages these days. Ah, that's why I couldn't find it. That makes sense though. So this guy right here, this block is actually descriptive about what our problem is. And so the first thing is it says SC Linux preventing HTTP from read access to this file. It gives me the file name. And then if we wanted more information, we could run this SC alert command. One more time. Cause I'm tailing. All right, so let's do this SC alert command. Every violation is given a UUID. And so that gives me a lot of stuff, right? But I think the most important things are this and this, right? The thing that's trying to access the resource, source context is this. And the thing that's trying to access the target context is this. And then it tells me that down here at the bottom that that was denied, the thing that was trying to do and then gives me a little bit further detail on it. And so that's how you can look at your logs and see that there isn't SC Linux problems because you see this giant pile of SC Linux error message. Are you suss out that SC alert and just look at the specific alert message for your thing. And this is the raw log message that you might see on your systems as well. And what it's telling you is here's the command that was making a request. This is the resource that was trying to access. This is the context of the thing that was making a request. This is the target context of the thing that was trying to access. And that mismatch is why you're having an error. And so if you were to update the file context to be HTTP, syscontacty, no more error because that's now allowed according to the policy. The last piece of like kind of fundamental SC Linux permittance is ports. So, and you know, let me grab that. So if you are a HTTP service according to SC Linux policy you're allowed to bind to these ports. Nice. And primarily it's these, right? 80, 443, 8008, 9008, 443. I wonder why 488, well, that makes sense, I guess. Something must have used 488 in the past. Yeah, I guess. Yeah. I mean, all the other ones are like, okay, those make sense. Yeah, you know, like there's reasons for those. That one's interesting. That one got added. Well, and you had mentioned at the top of the broadcast, Chris, that 8080, well, that's in there. And 8443 is in there. But what if we want to do 8081? Okay. 8081's not in there. No. So let's, that would fail epically unless you did something different. So. Oh. Oh, did it not even allow ACPD to start? Correct. It can't bind to it. That's right. So if we do a system CTL status. It's called CTL wrong. Fail to start Apache. Yep. And then we get this permission denied on this make sock connection. Wonder what the log says about that. Well, let's see. Let me go a little bit bigger. The tail's big enough. So. I mean. SCLinux is preventing the daemon process from doing stuff on IPv6. Yeah. Let's get out the SC alert from this pile. Right. So this one is not as straightforward, right? Cause it just says that here's the daemon types. And then it's trying to access a kernel T type thing. Which it turns out is the port. So let's see if there's anything else in this message that might provide a little bit extra. Oh, here we go. A little bit further down in the stuff. If you believe HTTP should be allowed to access port 8081 by default, here's some stuff that you can do. All right. They're actually having to recompile the policy, but I don't wanna do that. No. Yeah. So what we're gonna do is we're gonna do SC manage port 8081. I need to get my list again. So I have the right thing to stick on it. So wait a minute, maybe 80. Yeah. I was about to say. Okay. To the girls. Can't you just do this manage that each one? Not just tell us. Can I do what? SC manage that. It has a lot of usage. Okay. Nevermind. All right. So there it is dash T.  What? Already defined. That it act to do like a non accept. I bet it's applied to a different. That's a good one. There you go. So how don't we look for that one? Okay. So let's use this one instead. Let's just get our list again. And yes, shout out to Ben Dyson who literally typed in does it need a dash T as you were typing dash T for job. Okay. And so there it is. Let me just update my configuration file so that we know we're all good and we're all using the right values everywhere. Much better. Okay. So now it's running again and let's just make sure that's really true. Wait. Go ahead. Oh, I was about to say it. The go back to the terminal listening on port 80 89. But didn't we have to do something to that file for? Let's just make sure it doesn't work. Oh, yes. I had it still with the old context. Yes. I'm here for you. Okay. One more time. There we go. Okay. So when you know what the primitives are, right? Your process context type, your file context type, your port context type and the policy that kind of controls the inner meshings of them. You can then make better decisions on like how to approach fixing this SE Linux related issue besides set for zero. Right. Please don't do that. But please. There's actually a site called StopDisablingSELinux.com. I've shared that in chat a couple of times now. It's actually written on the back of this shirt. The message behind it is quite funny though. If you're not familiar, Dan Walsh at NSA, well, while he was working at NSA, he now works at Red Hat. He actually developed SE Linux so that Linux could be used in more secured environments. If it had not been for Dan's work, SE Linux would not exist or it would be called something completely different and work completely differently maybe. But yeah, thank you, Dan Walsh for SE Linux. I remember reading that original NSA brief when it like Dan first wrote it. So way back in the early 2000s. I vividly remember where I was sitting when I read that. I was like, this is gonna be a game changer. Do you know what Dan works on a lot now? Do you know what Dan works on a lot now? Because he doesn't- Containers. Yeah, containers. It's amazing. We've had him on the channel a couple times now and yeah, it's always insightful when Dan comes on. Yeah, I don't know how he indexes the like vast wealth of information that he contains because I would be like, oh, you know the thing with the stuff and how it all works. See, I think you and I take the Einstein approach of if it's written down somewhere you shouldn't memorize it. Yeah. Because supposedly Albert Einstein didn't even know his mailing address because he would just open a phone book and find it. Interesting. Can't do that nowadays, I bet. Yeah, well, phone books are difficult to come by. I only remember the last time I got a phone book for to be honest with you. So do we have any other questions in chat before we close this out? Let me go back and look here. So, oh, that's what, Openshift Webturner, we talked about that. Other than the fact that you have too many tabs open, no, there's nothing in Significance for Chat that we haven't responded to yet. I prefer to say that I'm wealthy in tabs. Wealthy in tabs, tab wealth. That's right, I have tab wealth. Or is, or would it be tab privilege? It's like Bitcoin, but for tabs. All right, so the one, I think the last... The SELinux context does my Bitcoin miner need. I have no idea. I don't either. The one last thing I think to close the loop is over here on the SELinux through web console, AKA Cockpit. So you could see that there... So you had the vert rules before, now you can see that we've added some. Yes. So that's kind of cool that you can actually get a look at what customization, but then the this box, so that you can then carry them forward. Right, but like view automation script, that's the cool part. Click that little thing up to the top right. Little, oh, that thing, yeah. Ta-da! Nice, nice. It gives it to you in shell, and there's a tab for Ansible as well. Excellent.  Off you go. The other stuff is we are looking errors through the command line interface and log files on that. And AD suggestions in the logs, and guess what, can apply that. We have similar stuff here in web console. So... Yeah, I really think Cockpit does a great job of enriching the administrator experience. You know, like, I get it. Everybody wants to live on the CLI. I often live on the CLI, but Cockpit really changed that for me. He had really did. So, great work on that, right? Like seriously, shout out to that team. Actually, we're in an article for Home, what is the peer article? HostingAdvice.com. Here, I can give you the link. Yes. On Cockpit. And the journalist was originally asking, like, why did you do this and how did you come about making these decisions? And like, I think at some point, we realized that we were trying to create a Windows-like experience for administration, but Linux is not Windows. Right. Right. And at the same time, you know, Windows and Microsoft were like, wow, it'd be really great if we could have, like, a scripting language that we could apply across all our boxes. And they came up with PowerShell. And so, like, we were trying to do things their way. They're trying to do things our way. And at some point, we were like, wait, why are we trying to do things like that when our operating system is actually kind of lend itself to that method of management? That's like, make user interfaces that kind of make sense for how we manage boxes. Especially on things like storage, so much better than it was in some of the older tools that we were shipping with the graphical desktops. Yeah, but, we thought it was better. But yes, so thank you very much, Scott. Thank you, Chris. I'm glad we have this quote in the can because people can reference it and get good info about SC1X, really. All the stuff I showed you today is across. Seven. Everything, six, five. It's all pretty much the same. Maybe the file location. I was about to say the file locations are probably different than five. But the commands are the same. Yeah, we've done a good job of kind of preserving that lexicon and carrying it forward through every version. Yeah, awesome. Good stuff, man. Cool. Well, folks, thank you for tuning in. Thank you, Scott. Thank you to everybody that has watched the channel today. We are signing off for the day. So please tune in tomorrow morning for the data services office hour. We'll be talking about encryption and using external key management services with the Open Data Foundations Toolkit or OpenShift Container Storage. It's still called, but name is changing and soon to be released version. Yeah, so stay tuned tomorrow, folks. And when in doubt, check out the streaming calendar. Give it a subscribe and that way you can know at any given time where to go to tune into OpenShift TV and when to do it. So thanks, Scott. Appreciate your time today and we will see y'all next time.


Okay, cool. So yes, how are you guys?  Yeah, we're good We still are not in lockdown, which I think we should be but really. Yeah, so people are there's lots of people out and about still I don't think they should be Are they kind of like rushing to the stores and hoarding everything? Is that is that what you're seeing at? Yeah Yeah, the shelves are pretty bare. How about you? Okay? Yeah, we we we Experienced that maybe maybe a week ago actually the last two weeks actually actually two weeks ago is kind of when it started and then and then last week The stores, you know kind of weren't as bad as far as the shelves and products But I think well we're supposedly on lockdown, you know now, but I still see people out But there's still so many things that are closed But the stores are open and shelves are restocked But it was it was maybe two two and a half weeks ago and just there was nothing at the store and it was like freaky It was yeah. Yeah, it's a weird feeling. I don't like it Hey, I don't either and and I'm I'm you know I'm that type to stay optimistic and stay positive and and this whole time I didn't even watch the news until until maybe maybe a few days ago And that's when I was like, wow, this thing is bigger than you know bigger than big and yeah And it's crazy as positive as I think I am It's like man like the news you watch that thing for 10 minutes and you're freaking going out of your mind, you know Yeah, I don't watch it. I do not I can't but my mom does she's at home by herself and oh my goodness, right?  Yeah, I don't know who to believe anyway So yeah, so it right right you don't know, right? And so and so the last few days. I've just been been just Following and watching youtube videos of actual Like mentors that I follow like like the Robert Kiyosaki's or like the mark cubans Like like even the bill gates like trying to trying to get information from them on on how they're you know approaching this whole thing rather than You know the 10 o'clock news. Yeah, that's a good way to go. Yeah Yeah, like yeah, so And listening to these guys to tell you the truth They made me feel so much better like they they just because entrepreneurs and and especially like multi multi successful ones You know these millionaires and billionaires like they they have a completely different Look and and and perspective on on what's really going on And so yeah Watching a few of those guys and just listening to to their perspective actually made me feel better Yeah, yeah, I've done the same I've been listening to podcasts and just yeah I want to stay positive. Yeah. Good. Good. Good. So what do you got going on? What what are you? What are you stuck on or what are you what are you looking to do next? Okay, so we did I did rachel's video and then I wasn't sure what to do next I know I wanted we were doing that to create like a custom audience and I think I did that But i'm not sure if I did it right. Okay, let's um, why don't you share your screen? Let me stop my share Go ahead and and share your screen and and I'll just kind of walk you through on your end. Okay Let's see I got her pulled up somewhere We cancel this Um, yeah, so I was watching some of your videos last night too. They were so good. Um, thank you. Shelly Yeah, and I was liking all of them as I went so then I saw where you said to do this. I'm like, okay I didn't do that but um Because I think now I need to do conversions right Yes conversions you want to set up a custom conversion And that's going to be around that's going to be on the actual url the actual page that people land on After they buy. Okay. Yeah. I was like, okay. I didn't do that. So I created this audience um So you did you did a look-alike audience that audience may not may not be available right now. Um Only because the custom audience is it's what is what it's based on is what's based off of I should say The look-alike audience is based off of the custom audience And your custom audience right now may not have a ton of people in it just yet Um, even though we might think it's a it's a good amount. It might not be that I think there's a certain amount Actually, you know what to tell you truth. I think I I think you might have enough I think I think the views is a is a thousand views I think it's a thousand views on a custom audience as long as a thousand people viewed it And now those people are in a custom audience. We can build a look-alike audience around it. Okay Did I do that too here? Is that what I did? Yes, so people who watched The video Okay, click on click on that real quick And so what you did well actually you you created a look-alike audience. Okay Created a look-alike audience around it. Um So I need to do a custom audience of people who watched it Yeah, we need to do a custom audience for sure and the look-alike audience will come after Okay But but even right now. So that's what I'm trying to really say is the fact that right now It's just it's just one video right? It's just one video or even if it even if it was a couple videos We're still new into the game. We're still new into the advertising of of these videos So the custom audiences alone Will do you good like you can do you can do very very well for a long time just on the custom audiences The only reason why you go into a look-alike audience is when you pretty much max out And and now and now we're you know, we're making, you know, 200 300 cells a month and now we're looking to go to 500 600 cells a month. Okay. Okay. How are you saying that now? Yeah Yeah, so that that's when we can then take that custom audience And and and clone it and just simply duplicate it and and that's the look-alike audience So so you're far away from a look-alike audience even me right now with as much traffic as I'm putting in as far as the You know the viewers on my end. I'm still kind of far away from from needing to create a look-alike audience Okay. Okay. That makes sense. So the custom audience is is is fine for for right now for sure Okay And so I would use that Custom audience that I have not created yet And then do a conversion add Yes, that's what you you can do for sure Um Let's see these okay, so 50 of people who watched Which so then all of and here's another another tip as well You want to try to keep this list as clean as possible So if there happens to be one in there that is not going to be one you use or if you set up one that's not correct I would just delete it And try to just keep this list as clean as possible. Just so just so you're not confused Yeah, exactly. So I'll just delete those and start over. Okay And then I created the other ones after our call Um of all like the the custom URLs you were telling me Okay On which on which one remind me. Oh, um, just like um of the Checkout page the cart visitors. Yeah, perfect. Perfect. Perfect. So you got so you got ad payment info initiate checkout Add to cart see so those those all sound the same to me add payment info initiate checkout add to cart visitors Uh-huh. So those three It should it should just be one But you have three Okay, um unless those are three different pages. Are they are they three different pages? I think so. Does it say in here whether your URL is yeah, it was yeah if you click on it It'll tell you what the so if you scroll down Let's click on click on um click on edit Okay, so there's no there's no link in there. Okay, so I didn't set it up, right? Okay, so we didn't set it up the right way so let's let's um Make a note of that but delete that or actually know what leave it leave it. Let's leave it and just go to um go to The actual URL like do you have the pages open? so Like this would be when they look at the collars and see What what you see what you see at the top that URL? Uh-huh. That's a good way to title it to title your custom audience as well place your order. Okay. Okay, so i'll know like What the heck i'm talking about exactly Okay, so so that's one URL. That's one page And when they click on cart They go to the next page So this one could be place your order and then they click on cart and then they come here This right here is cart. This needs to be a custom audience as well. Okay And then You only copy this part, right? The actual Www take take you do that. Yeah, take that part too. Okay um Yeah, you yeah take you could take the Www for sure just the hptts is not really necessary So then this would be exactly what what it says there in the in the in the url cart So let's just put add to cart.  Yeah, it could be that one, but then you also had that that initiate checkout So now we have two Which doesn't need to be two. It could just be one. It could just be add to cart Okay, so it doesn't have to be an or or it could be initiate checkout However, you however you want to label it, but I would label it based on what that url says, you know, so you're not confused And go here edit. Yeah. So click on edit And then let's let's that add to cart hit that drop down And then go to people who visited specific pages Oh And then paste it right there. Okay, and then Add to cart. Yeah add to cart Perfect Awesome. So then right here. It's telling you. Yes, you can create a look like audience around it But you don't need to do that right now. Okay, like let's let's just build up that audience Like we could build up that audience.  You're not even spending a hundred dollars a day Right. So that custom audience is not It's it's going to be it's going to be a long time before there's before there's tens of thousands of people in that custom Audience there's going to be it's going to be it's going to be a long time before there's thousands of people in that custom audience So therefore a look like audience isn't necessary right now. Okay. That makes sense. Okay. I can go back and fix those um later and then Do the purchase one real quick open up that purchase Here, okay So let's hit edit And then do I go Yes, so now I don't know if you can get to it from here unless you purchase it I mean if you go and purchase then you'll obviously see the thank you page, but If you go into the settings of the website That's where you would get it the url So in that in this case the purchase we're looking for The thank you for ordering page. Oh no, she has one Yeah, she she definitely should for sure for sure for sure every Every page should have because when I go and purchase the caller I got to be taken somewhere after it. Yeah, right Okay, so If anything if you can't find it there Just reach out to her and say rachel. I'm gonna need you to purchase your product And see where it takes you I wonder if I can just create a discount that makes it like Um 100 off. Yeah. Yeah, like 99 99 percent off Yeah, make it free. Okay, and then I'll do that and then I put that in here Yeah, then it would go then you'd go people who visit specific pages That url would go right there and that would be kimberlain purchase Okay, and then those are the people you would exclude Exactly. Okay. Exactly. Exactly See I was watching your video You were a great job Great job And I try to I try to make it because my whole my whole niche and and and who I really you know as far as clients That's why I told rachel. I'm like, man, I could help you with all this But at the same time it's way more than what I want because I I just stick to real estate agents Yeah, but on my youtube channel I try to make it as general as as possible when I'm explaining this stuff so it can help, you know, obviously any business Yeah, okay, I'll fix that later if you don't have to sit here watch me trying to find the page It's all good And then okay, so once I have those custom audiences fixed Um, then do I what do I do next? Then you can simply go and run any ad you want and either and here's what I would do Any future ad so now now we rolled out one video one ad and now we have some custom audiences that are set in place So ad number two what I would do is I would include these audiences of Init of initiate checkout or add to cart And you know what what go back to the ad see and that's that's why you're gonna need You're going to need to know what that confirmation page is Yeah after because here's what you want to do go back to add to cart And and delete one of those either delete the add to cart or delete the initiate checkout because you know You don't need both of those. Okay Um, but but when you when you come to this one, so is this the add to cart? Uh-huh. Yeah, so click on the edit real quick Here's what's super important as well um This right here is telling facebook that these people Added to cart and that's the url But what we also want to do now here's because here's here's the thing There there's there's two types of people one person added to cart The second person added to cart and also purchased So what we're telling facebook right here is we're saying hey just put everybody who added to cart into this audience When that's not exactly the truth Because everybody at the cart the person number one added to cart and person number two who actually purchased added to cart as well That's for yeah, so so what i'm gonna have to do here is i'm going to have i'm going to have to exclude People who actually purchased okay, so that makes it a more precise and cleaner audience of specific Like this person added to cart, but they never saw the confirmation page So that's when we're going to come to exclude people hit the exclude to the right in blue That's when you'll put the purchase link Right there so all website visitors people who visit specific pages And then that right there that url is to purchase the confirmation that thank you for for buying url goes right there Okay, and then do you change the days or do you just you can go 180 you can you can go 180 Yeah, because because yeah, you can go 180. So now now we're telling facebook. Hey man, these people are just add to carts. They never purchased And so now to answer your earlier question when we go run the next ad We know to include This audience because this audience are not people who purchased They're only people who added to cart but left for for whatever reason, you know, yeah, okay. Does that make sense? Yeah, that makes sense Okay, so so yeah knowing that purchase Page that purchase url is very very important. Yeah, okay I'll have to figure what figure out what that is. Yeah, and and that's gonna go that's you're gonna you're gonna exclude that url on the add to cart audience um You're going to exclude That on the ad payment info if that's a completely different url if that's a completely different Is that different ad payment info? Is that a different page versus the add to cart? Yeah, it's It is right check out. Yeah. Yeah check out perfect. So um Is that what you I probably didn't do it right though Click on it And also edit the title. Let's let's really name it what what it is. So yeah ad payment info click on that drop down and And yeah, go to specific page And then grab that. Yeah, grab that url Unshared There we go And so on this one as well We want to exclude The purchase page Okay, so But I don't know why don't you change that title as well change that title just so it matches the url So go back to edit No Here yeah, oh I do it in there. Okay. So just write their name your audience Oh, okay, rather than add payment info. Just why don't you just Perfect So remember to exclude the purchase page um And then the lead what do you have what's that based on kimberlyn? Yeah, no idea. We'll see delete that one Oh, I thought I was doing things right and I didn't leave whatever that means That that that right there would be good if if you were actually capturing leads Um, which you are I mean people who purchase your product those are leads Those are people that you're going to be able to email in the future different products But in this case with what you guys got going on, it's it's just it's just we're just making cells So yeah, it's not A custom audience and their lead that you really need to need to list So people watched perfect. That's the video and what are you basing that on are you what what's the Or like the percentage or the amount of views like click on it real quick So you're basing this on Yeah, click on edit Like I don't know what I did Okay, so people who watch 15 seconds of it perfect So but but also you want to put that in the audience name Okay, make sure you're you're detailed about that Perfect perfect Okay, so now we know we can look at that audience and say okay boom 15 seconds. That's who we want to retarget Okay, okay, cool. So so now once you and once you Add the exclude The purchase the confirmation. Thank you for ordering You're gonna add that on the checkout. You're gonna add that on the add to cart You're gonna even add that on the website visitors And even on the micro original micro prong, okay, because again everybody gets to that part Even if they purchased So I have to be very specific and and exclude the people who actually purchased Okay, okay So so that right there what looks really good once you include the exclude once you include the excludes Yeah That's that's perfect. And then and then when you go run your next ad then you can you can You could start you could start doing conversions You could start doing conversions or you can or you could start doing traffic And and so let's go hit the three lines on the top left real quick Hi And then go to add manager Okay, and then let's click the green button So I had started one and I'm like, I'm not doing this, right? Yeah So here's kind of here's kind of how facebook how how the next step works step to facebook ad number two and on now To really for for a business that actually has you know a budget that's not really stressing on their last dollar Which a ton of businesses obviously are at these times, right? A lot of people are down a little to the last dollar and and But at the same time, I truly believe you still need to stay top of mind Like I literally just dropped a video an hour ago talking about this talking about how So many businesses right now are losing their behind But the ones who actually stick it out and the ones that actually Take their marketing even more seriously right now Are the ones who are going to win and I'm talking about this in my in my video that I just dropped an hour ago I'm talking about how if you need to go sell something if you need to open up your garage If you need to open up your closet if you need to open up You know something to go sell to open up a budget for this month of april Then do it go sell some junk in your garage to to to give you a facebook ad budget, right? because what I'm talking about is is The fact that very few are advertised right now the ones that are Are the ones that are going to win so And then and then I mentioned video views So for those that don't have a huge huge budget right now and and you're running video Run more video views so you can start creating more audiences That's what I what I really really recommend, but if you don't have You know more videos and actually let me ask you what's your next ad? What do you guys plan on doing an image or do you plan on doing another video? Well, she had a video, but it was just about she was just showing like outside Where she makes the colors and you know, it's rural america type thing. Mm-hmm. Good. Is that a good one? Yeah, those are i'm telling you those are raw authentic on your cell phone type of videos are powerful Okay, like those are powerful and and so many businesses so many try Like i'm telling you like so many try to do it so professional where they have a camera guy and and it's a professional editing And all that stuff like I'm just convinced that it's that social media marketing is actually the opposite And and especially right now when you're trying to market on a shoestring budget And you don't have the fancy equipment to to produce video Especially now like good thing is you don't need to so little random videos on your cell phone Go a long way like those are perfect those are perfect, but what i'm really trying to say is the fact that Right now you're just you're just starting out So the the audiences and even the facebook pixel Needs to warm up like it needs to know more of who what type of of customer you you're after like Even though you put in your targeting even though you're you're targeting the right interest and and the right location Facebook still needs to know who your ideal customer is Just because we put in dog interest or we put in dog lovers or whatever it may be It doesn't mean that they're going to like your product Right so facebook they're going to give you the the the the interest they're going to give you the targeting They're going to give you the demographics They're going to give you all that based on what you put in but as far as who likes your product They don't know that yet So that's why the pixel and the custom audiences are so important So What i'm saying is that video views is what started this that's that's ad number one But but you may want to keep you may want to run a couple more videos Just so you can build even more audiences Which will make your your your targeting even more better and so right now You ran one video that's video views. We have a custom audience Normally you would go into conversions So 99% of the time from ad let's just call it ad number two and on 99% of the time it would be conversions Right, but because facebook doesn't know exactly who your customer is because number one we haven't made a sell yet And number two we haven't been running ads that long So facebook doesn't know who your conversion is. They don't know who exactly that ideal customer is just yet So with that being said you may want to start off with traffic And and now so ad number two you would run it under traffic And that learn more button would go straight to that product Okay, and so after you run ad number two ad number three maybe even ad number four and you run that under traffic Directing traffic straight to the product And then once you start making cells Then facebook's going to know okay, and and now your pixel is going to have more data So facebook's going to know okay. These are the type of people who are purchasing so so to so So ad number five and on let's say for example Ad number five and on would be all conversions because now facebook knows who's converting They know the type of person that actually landed on these pages right now We're giving them the url. We gave them the url for the at to cart. We we're going to give them the url for the thank you for ordering That's giving them the url, but no one has landed on it yet So until people actually land on it Conversions may not be May not be the objective right now It may it may be traffic and that's why right now from ad number two I would encourage you to test both of them If we have a if we have a if we have a ten dollar a day budget You're going to do five dollars a day on traffic and five dollars a day on conversions Okay, and and and you're going to and you're going to retarget your custom audiences But again, the reason why i'm telling you all that is because the custom audiences that we have are not that big yet Gotcha, it's not like hundreds of like like and and and what I mean big is is tens of thousands of people Landing on a specific url.  We don't even have hundreds of people yet who have landed on a specific url Right, so so so traffic. We got to get some traffic going. We got to get some traffic going and so Normally people would go straight into conversions and that's why I want you to test it Run it five dollars a day go for maybe maybe seven days Seven to ten days under conversions and then do another one Five dollars a day seven to ten days under traffic And that's ad number two Same same image or same video same text same everything but two different objectives two different ads okay And and and so you'll you'll you'll you'll retarget the custom audience But again the custom audience it's it's not that big yet It's not that big yet So We got it. We got to just we got to just we got to get it bigger And the way we're going to get it bigger is is is through traffic Or through more video views but but really really traffic because it's it's the traffic that's driving the people to the actual pages The video views was just to drive people to the video So we we paid to get people to view the video And and now on the back end we're creating audiences around everyone who actually viewed it Now we got to drive traffic. So the pixel can start recognizing these URLs And once that happens then it's game time once we get that pixel knowing who the heck is landing on these URLs Then 99 of the time from that point on and I'm going to call it I'm going to call it ad number I'm going to call it ad number four and five like from ad four ad five and on That's when 100% of the time it's conversion ads And you can and and you're retargeting everyone and You're running conversion Okay, okay, but but that custom conversion has to be set up and that custom conversion is set up around the thank you for purchasing URL Okay Because as you come in here and we choose conversions and then we go to step two and that's the ad set It's at the ad set that we're going to pop in That URL or that custom conversion that we set up, which is People who would land it on the purchase page Okay, right So all i'm saying is that facebook doesn't know The type of person who has landed on the purchase page because no one's land there yet Make sense. Yeah okay, so I would for sure test test them test them both And and and and and this is this is this is this is where our budget goes So as a as a business owner opens up a few hundred a month. It's not a few hundred a month on one ad It's a few hundred a month on multiple ads Okay to see which one is our is our is our home run hitter and and and um And what you also want to do just just I mean this is a little bit more advanced but As you go in and set up these ads it happens on the ad set level Which is which is the second step And it happens on the the third step, which is the ad level As you get a little bit more advanced In the ad set for example And and and and this is all in in the same setup. So we choose the objective Let's say let's say it's traffic And then we go to the second step, which is ad set and now we're choosing our audience our placements and our budget and schedule A little bit more advanced is when you're now setting up an ad set and targeting people who love dogs And then we're we're duplicating that And we're creating another ad set all in the same ad We're creating a second ad set and we're targeting dog lovers Or we're targeting dog trainers So so it's one key word per ad set And you can do that in within the same ad within the same ad as you're setting up everything You're gonna you're gonna come to the ad set audience placements budget and schedule And then all you're gonna do is duplicate it And now rather on on one You're you're targeting people who have an interest in dogs on the second ad set you're targeting people who love dogs And then and then when you and that's why this is advanced because This is where you're gonna eventually, you know be headed You're gonna go this direction and then you're gonna set up a third ad set and on this third ad set you're targeting a specific type of dog And so now we have three ad sets which are which are really Which is technically three different interest groups So rather than setting up three completely different ads We're gonna just set up three different interests that we're targeting in individual ad sets Okay, but that's a little bit more advanced That's not one of your videos yesterday. You said yeah to go for like an interest Um a profession. Yes. Yes. Yes. Yeah. Is that what you were talking about there? That's what I was talking about so, okay So so and and those would be all three different ad sets all within this one ad Because the way we're gonna set it up now and the way you set up the video view for example You set it up under one ad set you were targeting, you know one specific maybe you targeted a bunch of words but A key, you know Interest maybe you maybe you targeted a bunch, but at the same time Um, actually, you know what let's go to real quick Let me let me take a look at that at that at because this I'll walk you through this real quick because this is even though you're not going to really need to do this at this second but but but again if if a if a if a business had has the budget and I'm talking let's just say 500 600 700 a month then this is what you would be doing for sure out Like out the gates for sure. This is the best way to do it But right now if you're just starting small Then just do one ad set And and and warm up warm up that pixel and really see if if you can if anything happens out of that But go to which which is the one so is it targeted ad from video? Which one is the one we did was the ellie walk Okay, perfect. So so just check the box to the left Okay, and then open up the ad set The second tab. Yeah, that's okay. Yeah, and then click on So go to the link ellie walk video new and then under hit edit So what i'm saying by multiple ad sets is in this scroll down Yeah, see if you guys are spending 20 bucks a day you guys you guys for sure So so here's my point. Here's my point. Here's how you would do multiple ad sets Rather than if let's see scroll down. Where's the targeting? Where did you um, who did you target?  Okay scroll down Interest hobbies. Okay doc. So here's my point. Here's my point You're spending 20 a day on that interest What i'm saying is rather than 20 dollars a day I would spend five dollars per day On four different interests Okay So we wouldn't put the four interests here We would set them up individually. So this one ad set is dogs. That's five dollars a day all within the same ad We're going to set up a second Ad set and that second one is going to target dog lovers And then that third one we're going to target a specific dog And then maybe the fourth one we're going to target the biggest facebook page So that's what you want to also look into What facebook business page?  So you want to so the fourth ad set for example could be Targeting people who follow that page And now we have our 20 dollars being spent in four different ways Targeting four different interests and at the end of the five days six seven days I would go maybe let's just say I mean At five dollars a day you want to maybe let it run for at least maybe seven days But at least at the end of the seven days one of them is going to pop off You're going to be able to look at the analytics and and out of out of the four You're going to have one of them that are that's crushing it for you And then and then at that point you turn off the other three Okay, does that make sense now that's a little But but at the same day when I look at 20 dollars That's what you you for sure should be doing You should be you should be you should be targeting four different interest groups at at five dollars a day Okay, how do you how do you interpret the analytics to know which one's doing the best? Well, let's see get out of this part real quick close this Here's what you here's what you want to do first of all you can look at It and and and on the video view you don't really need to Look at too much too many analytics analytics on the video views because video views are what it is It's video views. They'll start wanting to track the analytics when you're running traffic and conversions And so when you when you're running a travel conversions ad You're going to be looking at cost per result You're going to be looking at results Because rather than right like on this one, for example under results it has 18,000 plays On a traffic or conversions Under results it's going to have cells Okay, and then and then the cost per result it'll obviously be the cost per result so Those are kind of the only two that you really that you really need to be looking at I mean, what's it cost to me per cell and how many cells did we get? Mm-hmm. That's really it. I mean The reach the budget the last thing we can edit the bid strategy I mean, none of that none that really is is important at all But in this case again at at $20 a day Now now now that was good for the video that was good for the video because that allowed us to get thousands of people to view it Now we have a good custom audience But from this point on I would break that down into four And and and do five dollars a day And and and and test that because again that's going to give you the winning audience because Now now we have multiple audiences and that's what they are is multiple ad sets now We now we're targeting four different keywords Some people will put all those keywords in one like you had dogs and that was the only one Some people will put all four in that one and then run it from there But that's not kind of how you want to do it because because if you put four different keywords In that one targeting, we don't know which keyword is the one that really hit off Yeah, I I'd like to know that I want to know was it dogs or was it dog lovers? Yeah, you know what I mean like I I'd like to know because Because that that that would allow me to really really build a good Audience and and and that would allow me to really get to the most relevant people because now I know These people are the ones that are buying people who are actually following the dog page. Those are the people who are actually buying So so I want to go all in with that With that audience and and take that one to the moon Okay, can you show me how to duplicate those ad sets in one ad like yes, so Let's go to yeah, click on ads manager. Oops. I went the wrong place. No, you're fine Then create name. Well, actually, no, you can let I'll show you on this on this elli walk Okay, yeah, let's check the box and then go to Because is that yeah, because that one's off and here's another thing that I do Even though it's completed it says right there in delivery and the ad is off What I always do you don't don't do it right now, but do when we're done What I always do is I always shade that blue to gray Okay, just because I don't know it's just a personal thing like when I look at this I want to know that it's gray or that it's blue. I want to know that it's on or that's off I can easily see completed and know it's off, but just the color coordination messes with me I don't know if it's just me, but but look okay Looking at it. I wanted I want to see gray if it's off. It's gray if it's on it's blue. Okay Okay, so got it. So go click on the second tab Ad set and all you're going to do is check on that box to the left and hit duplicate Okay, so all we're duplicating is This and and you can duplicate a number of copies you can you can and that's what I'm saying like people that have a huge Huge budget and in this case you can do you can do you can do three so number of copies of each ad set three That's if you're that and that that and so now Facebook is gonna and here's another thing Even if you keep the budget at $20 a day Now we duplicate the ad set because technically what that's really saying is I'm willing to spend $20 A day on each of them So if that's really the case, okay now we're looking at $80 a day But see what I'm saying is that also what I'm also saying is that Facebook is not going to spend all that If the ad is not highly performing so you're and you're going to be able to look at the analytics You're going to be able to know okay. This one is getting clicked on this one's getting a cells Let me turn off these other ads So again, you can leave it at $20 a day or you can or you could just drop it to $5 a day And and now now it's $5 a day per ad set But either or either or it's not like you're leaving that on for the entire month Like you're not after a few days. You're going to be able to look at it and you're going to see your winning campaign Okay, so I would create create the ad and then come back in here and duplicate And create the ad and then and then and then like watch hit the blue button. Just let's just do one for now Click duplicate So we're keeping the same objective, which in this case is video views, but I'm telling you in the future It's going to be traffic and conversions. Mm-hmm. We're keeping the same And see so right here it wouldn't be 20 it'd be $5 a day Okay, but but that would that it's not changing it just here It's changing it in the beginning like in the beginning It could have been $5 a day from the beginning, you know, I mean right now we're just duplicating Yeah, now we're at $10 a day because now we have two Right. Yeah, again after a few days, you're going to shut one off If it's not performing and only leave on the winning the winning one. So now we have the same objective So step one remains the same Step three, which is the actual video or the image That stays the same and all we're changing in this one scroll down All we're changing is the targeting so this far right here. Yeah, so right here. Let's go with something different Let's go with um I mean this and that's why like Knowing these keywords are super important as well, but but at the same time type in so delete that one.  We got dog trainer. We got dog walker. Um, I guess she's really wanting to target trainers Perfect There it is there then Okay, so you're just do that just do that hit publish and then close So there now we have Two different ad sets two different keywords running simultaneously and after a few days, we're going to know which one is the winner Okay So the so step three, which is the ad That remains the same The step one the objective whether it was traffic conversions or video views that stays the same And this has just given us the ability to see what keyword is our winner Okay, so so you you can duplicate ad sets And then you can also Duplicate the ad So in the ad let's say for example, we want to test a different video Uh, so again most people will either go start a whole new brand new ad Around each and everything that I'm saying Or you can just test them all within the same ad And see which one's the winner. Okay. That's so much easier that makes it Yeah, so so rather than bulking a bunch of keywords in that targeting just do one one keyword at a time To see which one pops Okay, so when I create the ad too I above the in the area above the targeted area I would put my Custom audiences that I created. Yeah, so go back to the ad set. Yeah, open up one of them Let's go hit edit Whoops And so right here custom audiences click on it click in the box and you'll see the drop down Okay, so I would choose all those plus my targeted interests Exactly. Okay. Exactly. So so again remember to include the excludes remember to put the excludes in those Yeah Or Or I mean, you could yeah, I would highly recommend doing that But if you didn't do that you can also You can also choose all those who you want to include who you want to target And then you can also hit exclude right there But you're gonna also do this as well You're gonna do this on every ad as well the exclude is going to be the audience of your purchasers Uh-huh. So let's see if there's anything in there click exclude click the box So kimberlin purchase that would go right there. Okay Okay, okay If I didn't exclude them in the audiences when I make them. Yeah, you want to do both. You want to do okay To be safe. Just do both Okay Yeah Okay, I think I have a much better understanding That that right there would yeah, you should definitely start to see some stuff. So what I would do trap What I would do is is is ad number two Break that $20 a day per you know, break it break it up. Just break it up break it up And and what I would do right now you don't necessarily have to do multiple ad sets right now But what I would for sure do is test traffic and conversions Like here's what I would do. Here's here's exactly your game plan. Let me give you the exact game plan Here's exactly what I would do if we have $20 a day Then I'm going to run two different ad sets $5 each Under traffic And I'm going to do two other ad sets $5 each under conversions Okay, that makes sense And then and then run that for the next seven days and see what type of data you see Okay, okay I won't do that. Okay.  So you might have to start with traffic And then after Facebook starts to see some data after you start to make some cells After people start to land on these URLs that you're actually creating custom audiences around then from that point on Um, and normally it's a few ads in normally. It's a few ads in we got to run a few ads first Then from that point on 100% of the time it's conversion ads. We are looking for cells bottom line conversions Okay, okay Got it. Thank you so much. I appreciate your time. So so welcome. Shelly I love I love helping you out because it ends up helping me out as well I get to you know create content out of it and share it with everyone. So yeah, talk to me anytime We'll do these well. I'm willing to jump on anytime. So all right. You're amazing. Thank you Yes, god bless you and be safe out there. Okay. All right you too. Thanks. Bye. Bye Bye


So, whenever we add chlorine to propane in the presence of heat or even UV light, we get a mixture of one chloropropane and two chloropropane as our products, right? Now, in this video, we are going to look at how much of this is in the form of one chloropropane and how much of it is in the form of two chloropropane. Is it 50-50 or something else? Let's find out. Now, to understand the ratio in which these products are formed, let's do a very quick recap. Let's look at how this reaction happens in the first place. So, in the presence of heat or even UV light, a few of these chlorine molecules that we take, a few of these chlorine molecules actually break apart in the form of chlorine radicals and these chlorine radicals that are formed are very reactive. They can react with the propane molecules that is present in the mixture. They can in fact go ahead and abstract these hydrogen atoms that are attached to a propane molecule. Now, if this chlorine radical collides against any of these hydrogen atoms that are present at the end, if it abstracts any of these hydrogen atoms from either this end or the other end, then in all these cases, it will lead to the formation of a new first-degree carbon radical. But if the chlorine radical goes ahead and collides against any of these hydrogen atoms, if it abstracts any of these hydrogen from propane, then this will lead to the formation of different second-degree carbon radicals. Right? Now, this chlorine radical can abstract any of these hydrogen atoms from a propane molecule. It can collide against any of these hydrogen atoms. But all of these will ultimately lead to the formation of either a first-degree radical or a second-degree carbon radical. Right? Now, these carbon radicals that are formed, these two are unstable and they are very reactive. And these can then go ahead and react with any undissuscitated chlorine molecules that are present in the mixture. And this ultimately leads to the formation of our products, one chloropropane and two chloropropane. So therefore, these radicals that are formed are the precursors to my products. Right? Now, if you look at it purely statistically, and if we assume that this chlorine radical is equally likely to abstract any of these hydrogen atoms from a propane molecule. So therefore, because there are eight hydrogen atoms in propane, so the probability of a chlorine radical abstracting any one of these hydrogen atoms, the probability of abstracting any one of these hydrogen atoms from propane will be one out of eight. Right? However, because the abstraction of all of these hydrogen atoms, all of these six hydrogen atoms that are attached at the end, because the abstraction of all of these hydrogen atoms will lead to the formation of a first-degree radical, either at this end or at the other end. So therefore, the probability, the total probability of forming a first-degree carbon radical will be six times, six times of one by eight. So it's six by eight, which is nothing but 0.75. Right? Now, on the other hand, because the abstraction of only these two hydrogens, because the abstraction of only these two hydrogens will lead to the formation of a second-degree radical, so therefore, the probability of forming a second-degree carbon radical will be two times of one by eight. So it's two by eight, which is nothing but 0.25. So therefore, we can now go ahead and say that of all the radicals that are formed, 75% of it should be in the form of first-degree radicals, while only 25% should be in the form of second-degree radicals. Right? Now, because these radicals ultimately lead to the formation of my products, so therefore, purely statistically, the amount of one chloropropane that we should get should also be 75%, while that of two chloropropane should be 25%. Right? However, when we actually carry out this reaction, we find that in reality, the amount of one chloropropane that is formed is actually not 75%, but it's in fact closer to 45%, while that of two chloropropane is 55%. So even though purely statistically, one chloropropane should have been the major product, however, it turns out that in reality, chlorination of propane actually yields a two-chloropropane as my major product. So therefore, chlorination of propane seems to somehow favor or we can say select the two-chloroproduct over the one-chloroproduct. Now if ultimately, the products that are formed are 45% and 55%, then this means that the amount of first-degree radical and the second-degree radical that is formed should also be 45% and 55%, right? So therefore, in reality, the probability of forming a first-degree radical is not 75%, it's in fact lower than that, it's equal to 0.45, right? Similarly, the probability of forming a second-degree radical is not 0.25, it's much higher than that, it's going to be equal to 0.55. So what's really going on out here? How do we make sense of these new probabilities? Now if you think about it, abstraction of any of these six hydrogen atoms from a propane molecule will always lead to the formation of a first-degree radical, while the abstraction of these hydrogen atoms will always lead to the formation of a second-degree radical. So if you think about it, the only way the probability of forming a first-degree radical is lower than 0.75, the only way it's possible is if this factor, which is nothing but the probability of abstracting a first-degree hydrogen atom from a propane molecule, it's only possible if this factor, which would assume to be 1 by 8 for all the hydrogen atoms, if this factor is lower than 1 by 8, right? Similarly, the only way the probability of forming a second-degree radical is greater than 0.25, the only way it's possible is if this factor, which is the probability of abstracting a second-degree hydrogen, is greater than 1 by 8, right? So in reality, the probability of abstracting a first-degree hydrogen and a second-degree hydrogen are not the same. We can in fact go ahead and calculate these new probabilities using our new data. So if the probability, if the actual probability of forming a first-degree radical is 0.45, then because this has to be equal to 6 times the probability of abstracting a first-degree hydrogen from a propane molecule, so therefore if you do this calculation, the probability, the actual probability of abstracting a first-degree hydrogen from propane will be 0.45 divided by 6, which will come out to be equal to 0.075. Now if you compare, you will see that this value is less than 1 by 8, 1 by 8 turns out to be 0.125. Similarly, the probability of forming a second-degree radical in reality is 0.55, so 0.55 should be equal to two times of the actual probability of abstracting a second-degree hydrogen atom from propane. So if you do our calculations again, this will be equal to 0.55 divided by 2. So this will come out to be equal to 0.275. So in reality, the probability of a chlorine radical abstracting a second-degree hydrogen from propane is much higher than the probability of a chlorine radical abstracting a first-degree hydrogen from propane, right? In fact, if you divide these probabilities, then we will see that the probability of abstracting a second-degree hydrogen is in fact 3.66 times greater than the first-degree hydrogen atom. So therefore a chlorine radical is much more selective in abstracting a second-degree hydrogen from a propane molecule. It's in fact 3.66 times more selective over a first-degree hydrogen. And this selectivity ultimately results in a greater than expected second-degree radicals which ultimately leads to the formation of two chloropropane as my major product. So the big question that we now have is why does a chlorine radical seem to prefer abstracting a second-degree hydrogen over a first-degree hydrogen? What do you think is the answer? Well, if you look at a second-degree radical, we will realize that it has these six alpha hydrogens, six hydrogens that are directly attached to this radical. And if you recollect from our videos on electronic effects, then you must remember that in such cases when we have these hydrogen atoms directly attached to a radical, in such cases the hydrogen atom can actually stabilize the radical by an effect known as hyperconjugation. So a second-degree radical has six alpha hydrogens that can stabilize it via hyperconjugation. But if you look at a first-degree radical, we will realize that it only has these two hydrogens that can stabilize it via hyperconjugation. So therefore a second-degree radical is more stable than a first-degree radical. So it's actually much easier to break this carbon-hydrogen bond as it will lead to the formation of a relatively more stable second-degree radical compared to breaking these hydrogen bonds as this will lead to the formation of relatively less stable first-degree radicals. In fact, it has been experimentally found out that while it takes 98 kilocalories to break these first-degree carbon-hydrogen bonds, it only takes 95 kilocalories to break these second-degree carbon-hydrogen bonds. So therefore the probability of a chlorine radical abstracting each of these hydrogen atoms is not same. A chlorine radical is in fact 3.66 times more selective in abstracting a second-degree hydrogen atom compared to a first-degree hydrogen. So to summarize in the chlorination of propene, even though we have more number of first-degree hydrogen atoms which this chlorine radical can collide against, but because it's much easier to break these carbon-hydrogen bonds. So therefore in reality the amount of 2-chloropropene that we get is much higher than 25%, it's actually 55% while that of 1-chloropropene is 45%. Now if you have stuck around till the end of this video, let me ask you a question. If instead of chlorination I did bromination of propene, then how much of it do you think should be in the form of 1-bromopropene and how much of it in the form of 2-bromopropene? In fact I want you to actually pause the video and think about this for a moment. Well, one might expect that just like in chlorination, the amount of 1-bromoproduct that is formed should be 45% while that of 2-bromoproduct should be 55%. But in reality it turns out that the 2-bromoproduct that is formed is actually a whopping 97% while that of 1-bromopropene is only 3%. Now that's really interesting, right? Bromination of propene seems to be even more selective towards the second-degree product compared to chlorination. So what's really going on out here? Let's find out in the next video.